linux-yocto/fs/nfs
Scott Mayhew 2d8b3898ca NFSv4: xattr handlers should check for absent nfs filehandles
[ Upstream commit 6e9a2f8dbe ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-07-06 11:00:06 +02:00
..
blocklayout
filelayout nfs: don't share pNFS DS connections between net namespaces 2025-06-04 14:42:25 +02:00
flexfilelayout nfs: don't share pNFS DS connections between net namespaces 2025-06-04 14:42:25 +02:00
cache_lib.c
cache_lib.h
callback_proc.c
callback_xdr.c SUNRPC: Fix integer overflow in decode_rc_list() 2024-10-17 15:24:23 +02:00
callback.c nfsd: stop setting ->pg_stats for unused stats 2024-08-19 06:04:23 +02:00
callback.h
client.c NFS: Avoid flushing data while holding directory locks in nfs_rename() 2025-06-04 14:42:25 +02:00
delegation.c NFSv4: Check for delegation validity in nfs_start_delegation_return_locked() 2025-06-04 14:41:54 +02:00
delegation.h
dir.c NFS: Avoid flushing data while holding directory locks in nfs_rename() 2025-06-04 14:42:25 +02:00
direct.c NFS: O_DIRECT writes must check and adjust the file length 2025-03-13 12:58:21 +01:00
dns_resolve.c
dns_resolve.h
export.c
file.c NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback 2025-03-13 12:58:27 +01:00
fs_context.c
fscache.c
fscache.h
getroot.c
inode.c NFSv4: Always set NLINK even if the server doesn't support it 2025-07-06 11:00:05 +02:00
internal.h NFS: Don't allow waiting for exiting tasks 2025-06-04 14:41:54 +02:00
io.c
iostat.h
Kconfig nfs: add missing selections of CONFIG_CRC32 2025-04-25 10:45:46 +02:00
Makefile
mount_clnt.c
namespace.c
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c
nfs3client.c
nfs3proc.c NFS: Don't allow waiting for exiting tasks 2025-06-04 14:41:54 +02:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h
nfs4client.c NFSv4.1 another fix for EXCHGID4_FLAG_USE_PNFS_DS for DS server 2024-08-03 08:53:54 +02:00
nfs4file.c
nfs4getroot.c
nfs4idmap.c
nfs4idmap.h
nfs4namespace.c
nfs4proc.c NFSv4: xattr handlers should check for absent nfs filehandles 2025-07-06 11:00:06 +02:00
nfs4renewd.c
nfs4session.c
nfs4session.h nfs: add missing selections of CONFIG_CRC32 2025-04-25 10:45:46 +02:00
nfs4state.c NFSv4: Treat ENETUNREACH errors as fatal for state recovery 2025-06-04 14:41:55 +02:00
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c
nfs42.h
nfs42proc.c NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE 2025-02-08 09:52:27 +01:00
nfs42xattr.c
nfs42xdr.c NFSv4.2: fix COPY_NOTIFY xdr buf size calculation 2025-02-08 09:52:27 +01:00
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c nfs: Avoid flushing many pages with NFS_FILE_SYNC 2024-07-25 09:50:45 +02:00
pnfs_dev.c
pnfs_nfs.c nfs: don't share pNFS DS connections between net namespaces 2025-06-04 14:42:25 +02:00
pnfs.c NFSv4/pnfs: Reset the layout state after a layoutreturn 2025-05-22 14:12:18 +02:00
pnfs.h nfs: don't share pNFS DS connections between net namespaces 2025-06-04 14:42:25 +02:00
proc.c
read.c fs/nfs/read: fix double-unlock bug in nfs_return_empty_folio() 2025-06-27 11:08:44 +01:00
super.c nfs: ignore SB_RDONLY when remounting nfs 2025-06-19 15:28:28 +02:00
symlink.c nfs: propagate readlink errors in nfs_symlink_filler 2024-07-25 09:50:44 +02:00
sysctl.c
sysfs.c NFS: Shut down the nfs_client only after all the superblocks 2025-04-10 14:37:35 +02:00
sysfs.h
unlink.c
write.c