HomeFreeBSD

Add d_off support for multiple filesystems.

Description

Add d_off support for multiple filesystems.

The d_off field has been added to the dirent structure recently.
Currently filesystems don't support this feature. Support has been
added and tested for zfs, ufs, ext2fs, fdescfs, msdosfs and unionfs.
A stub implementation is available for cd9660, nandfs, udf and
pseudofs but hasn't been tested.

Motivation for this feature: our usecase is for a userspace nfs server
(nfs-ganesha) with zfs. At the moment we cache direntry offsets by
calling lseek once per entry, with this patch we can get the offset
directly from getdirentries(2) calls which provides a significant
speedup.

Submitted by: Jack Halford <jack@gandi.net>
Reviewed by: mckusick, pfg, rmacklem (previous versions)
Sponsored by: Gandi.net
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D17917

Details

Provenance
kibAuthored on
Reviewer
mckusick
Differential Revision
D17917: d_off support for multiple filesystems
Parents
rS340430: Pick 57553c3b1a5592dc4c03f3c6831d9b794e523865 from upstream:
Branches
Unknown
Tags
Unknown