HomeFreeBSD

Fix NFS exports of FUSE file systems for big directories

Description

Fix NFS exports of FUSE file systems for big directories

The FUSE protocol does not require that a directory entry's d_off field
outlive the lifetime of its directory's file handle. Since the NFS
server must reopen the directory on every VOP_READDIR call, that means
it can't pass uio->uio_offset down to the FUSE server. Instead, it must
read the directory from 0 each time. It may need to issue multiple
FUSE_READDIR operations until it finds the d_off field that it's looking
for. That was the intention behind SVN r348209 and r297887, but a logic
bug prevented subsequent FUSE_READDIR operations from ever being issued,
rendering large directories incompletely browseable.

MFC after: 3 weeks
Reviewed by: rmacklem

Details

Provenance
asomersAuthored on Jan 2 2022, 5:18 PM
Parents
rGc454c5716357: whereis: fix fetching of user.cs_path sysctl variable
Branches
Unknown
Tags
Unknown