linux/fs/nfs
Sagi Grimberg 134d0b3f24 nfs: propagate readlink errors in nfs_symlink_filler
There is an inherent race where a symlink file may have been overriden
(by a different client) between lookup and readlink, resulting in a
spurious EIO error returned to userspace. Fix this by propagating back
ESTALE errors such that the vfs will retry the lookup/get_link (similar
to nfs4_file_open) at least once.

Cc: Dan Aloni <dan.aloni@vastdata.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
2024-05-22 19:25:00 -04:00
..
blocklayout nfs: port block device access to files 2024-02-25 12:05:26 +01:00
filelayout pNFS: rework pnfs_generic_pg_check_layout to check IO range 2024-05-21 08:34:15 -04:00
flexfilelayout pNFS: rework pnfs_generic_pg_check_layout to check IO range 2024-05-21 08:34:15 -04:00
cache_lib.c
cache_lib.h
callback.c nfsd: stop setting ->pg_stats for unused stats 2024-03-01 09:12:08 -05:00
callback.h NFS Client Updates for Linux 6.8 2024-01-10 16:13:57 -08:00
callback_proc.c NFSv4.1: if referring calls are complete, trust the stateid argument 2024-01-04 10:47:56 -05:00
callback_xdr.c NFSv4.1: Use the nfs_client's rpc timeouts for backchannel 2024-01-04 17:01:01 -05:00
client.c NFS: remove unused variable nfs_rpcstat 2024-03-09 09:14:51 -05:00
delegation.c NFS client updates for Linux 6.9 2024-03-16 11:44:00 -07:00
delegation.h NFSv4: fairly test all delegations on a SEQ4_ revocation 2023-11-01 15:15:52 -04:00
dir.c NFS: add atomic_open for NFSv3 to handle O_TRUNC correctly. 2024-05-20 11:09:20 -04:00
direct.c NFS client updates for Linux 6.9 2024-03-16 11:44:00 -07:00
dns_resolve.c
dns_resolve.h
export.c
file.c nfs: adapt to breakup of struct file_lock 2024-02-05 13:11:43 +01:00
fs_context.c nfs: keep server info for remounts 2024-05-20 11:37:15 -04:00
fscache.c NFS: Fix nfs_netfs_issue_read() xarray locking for writeback interrupt 2024-03-09 09:14:38 -05:00
fscache.h netfs: Optimise away reads above the point at which there can be no data 2023-12-28 09:45:27 +00:00
getroot.c
inode.c NFS client bugfixes for Linux 6.9 2024-04-29 12:07:37 -07:00
internal.h nfs: fix undefined behavior in nfs_block_bits() 2024-05-21 08:34:15 -04:00
io.c
iostat.h
Kconfig NFS: Don't enable NFS v2 by default 2024-05-20 11:37:15 -04:00
Makefile
mount_clnt.c
namespace.c
netns.h nfs: make the rpc_stat per net namespace 2024-03-09 09:14:51 -05:00
nfs.h nfs: move nfs4_xattr_handlers to .rodata 2023-10-09 16:24:20 +02:00
nfs2super.c
nfs2xdr.c NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN 2023-08-30 11:08:27 -04:00
nfs3_fs.h
nfs3acl.c
nfs3client.c NFS: enable nconnect for RDMA 2024-03-09 09:14:51 -05:00
nfs3proc.c NFS: add atomic_open for NFSv3 to handle O_TRUNC correctly. 2024-05-20 11:09:20 -04:00
nfs3super.c
nfs3xdr.c NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN 2023-08-30 11:08:27 -04:00
nfs4_fs.h NFS client updates for Linux 6.9 2024-03-16 11:44:00 -07:00
nfs4client.c NFS: enable nconnect for RDMA 2024-03-09 09:14:51 -05:00
nfs4file.c filelock: split leases out of struct file_lock 2024-02-05 13:11:44 +01:00
nfs4getroot.c
nfs4idmap.c
nfs4idmap.h
nfs4namespace.c
nfs4proc.c NFSv4: Fix memory leak in nfs4_set_security_label 2024-05-22 11:27:04 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFSv4: Fixup smatch warning for ambiguous return 2024-05-20 11:12:59 -04:00
nfs4super.c nfs: fix regression in handling of fsc= option in NFSv4 2024-02-28 16:18:19 -05:00
nfs4sysctl.c fs: Remove the now superfluous sentinel elements from ctl_table array 2023-12-28 04:57:57 -08:00
nfs4trace.c pnfs/filelayout: add tracepoint to getdeviceinfo 2024-02-28 16:18:19 -05:00
nfs4trace.h NFS client updates for Linux 6.9 2024-03-16 11:44:00 -07:00
nfs4xdr.c nfs: adapt to breakup of struct file_lock 2024-02-05 13:11:43 +01:00
nfs42.h NFSv4.2: fix listxattr maximum XDR buffer size 2024-02-28 16:18:18 -05:00
nfs42proc.c nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op 2023-10-11 09:37:48 -04:00
nfs42xattr.c mm, slab: remove last vestiges of SLAB_MEM_SPREAD 2024-03-12 20:32:19 -07:00
nfs42xdr.c
nfsroot.c NFS: Fix an off by one in root_nfs_cat() 2024-03-09 09:14:51 -05:00
nfstrace.c
nfstrace.h NFS: drop unused nfs_direct_req bytes_left 2024-01-04 10:47:56 -05:00
pagelist.c
pnfs.c pNFS: rework pnfs_generic_pg_check_layout to check IO range 2024-05-21 08:34:15 -04:00
pnfs.h pNFS: rework pnfs_generic_pg_check_layout to check IO range 2024-05-21 08:34:15 -04:00
pnfs_dev.c NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info 2023-08-24 13:24:15 -04:00
pnfs_nfs.c NFSv4.1/pnfs: fix NFS with TLS in pnfs 2024-03-09 09:14:51 -05:00
proc.c NFS: add atomic_open for NFSv3 to handle O_TRUNC correctly. 2024-05-20 11:09:20 -04:00
read.c NFS: Read unlock folio on nfs_page_create_from_folio() error 2024-03-09 09:14:51 -05:00
super.c NFS: make sure lock/nolock overriding local_lock mount option 2024-05-20 11:10:27 -04:00
symlink.c nfs: propagate readlink errors in nfs_symlink_filler 2024-05-22 19:25:00 -04:00
sysctl.c fs: Remove the now superfluous sentinel elements from ctl_table array 2023-12-28 04:57:57 -08:00
sysfs.c
sysfs.h
unlink.c nfs: rename the nfs_async_rename_done tracepoint 2024-01-04 10:47:56 -05:00
write.c NFS client updates for Linux 6.9 2024-03-16 11:44:00 -07:00