]> git.ipfire.org Git - thirdparty/linux.git/commit
NFSv4: xattr handlers should check for absent nfs filehandles
authorScott Mayhew <smayhew@redhat.com>
Wed, 16 Apr 2025 15:23:38 +0000 (11:23 -0400)
committerAnna Schumaker <anna.schumaker@oracle.com>
Mon, 19 May 2025 14:14:29 +0000 (10:14 -0400)
commit6e9a2f8dbe93c8004c2af2c0158888628b7ca034
treedfdb59937c90e74cda10e3396c268323ac072ad7
parente5296637a322b840d772f88f4d58b4bc72b29058
NFSv4: xattr handlers should check for absent nfs filehandles

The nfs inodes for referral anchors that have not yet been followed have
their filehandles zeroed out.

Attempting to call getxattr() on one of these will cause the nfs client
to send a GETATTR to the nfs server with the preceding PUTFH sans
filehandle.  The server will reply NFS4ERR_NOFILEHANDLE, leading to -EIO
being returned to the application.

For example:

$ strace -e trace=getxattr getfattr -n system.nfs4_acl /mnt/t/ref
getxattr("/mnt/t/ref", "system.nfs4_acl", NULL, 0) = -1 EIO (Input/output error)
/mnt/t/ref: system.nfs4_acl: Input/output error
+++ exited with 1 +++

Have the xattr handlers return -ENODATA instead.

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/nfs4proc.c