4h8qdp6jx9@privaterelay.appleid.com has uploaded this change for review.
FSAL: mounted_on_fileid as an attribute, and from VFS for mount points
The mounted_on_fileid of a file system root must be the inode number of
the directory it is mounted on (RFC 8881 5.8.2.23). Ganesha returned the
root's own fileid. Every ZFS dataset root is fileid 34, so Linux clients
saw nested file systems as directory cycles, and find and du skipped
them.
Add the optional FSAL attribute ATTR4_MOUNTED_ON_FILEID. Ganesha asks
for it only from FSALs that provide it, or MDCACHE would never find it
cached.
VFS and XFS take it from readdir() for mount points. GETATTR doesn't
read the parent, so when Ganesha reads the mount table it records the
mount point inode of each nested file system, read once through "..".
knfsd returns the same values.
Change-Id: Icac682e5a69fd6a6446b1742ba50b26d984b6f07
Signed-off-by: Evan Champion <4h8qdp6jx9@privaterelay.appleid.com>
---
M src/FSAL/FSAL_VFS/file.c
M src/FSAL/FSAL_VFS/handle.c
M src/FSAL/FSAL_VFS/vfs/main-c.in.cmake
M src/FSAL/FSAL_VFS/xfs/main.c
M src/FSAL/fsal_helper.c
M src/FSAL/localfs.c
M src/Protocols/NFS/nfs4_op_getattr.c
M src/Protocols/NFS/nfs4_pseudo.c
M src/Protocols/NFS/nfs_proto_tools.c
M src/include/FSAL/fsal_localfs.h
M src/include/fsal_api.h
M src/include/fsal_types.h
M src/include/nfs_proto_tools.h
13 files changed, 209 insertions(+), 21 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/73/1255473/1
To view, visit change 1255473. To unsubscribe, or for help writing mail filters, visit settings.