linux/fs/nfsd
Chuck Lever 68c522afd0 NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
nfsd_rename() can kick off a CB_RECALL (via
vfs_rename() -> leases_conflict()) if a delegation is present.
Before returning NFS4ERR_DELAY, give the client holding that
delegation a chance to return it and then retry the nfsd_rename()
again, once.

This version of the patch handles renaming an existing file,
but does not deal with renaming onto an existing file. That
case will still always trigger an NFS4ERR_DELAY.

Link: https://bugzilla.linux-nfs.org/show_bug.cgi?id=354
Tested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
2022-09-26 14:02:40 -04:00
..
acl.h NFSD: add posix ACLs to struct nfsd_attrs 2022-08-04 10:28:03 -04:00
auth.c
auth.h
blocklayout.c block: remove genhd.h 2022-02-02 07:49:59 -07:00
blocklayoutxdr.c
blocklayoutxdr.h
cache.h nfsd4: make drc_slab global, not per-net 2020-06-01 17:44:45 -04:00
current_stateid.h
export.c fs: add is_idmapped_mnt() helper 2021-12-03 18:44:06 +01:00
export.h nfsd: report per-export stats 2021-01-25 09:36:28 -05:00
fault_inject.c
filecache.c NFSD 6.0 Release Notes 2022-08-09 14:56:49 -07:00
filecache.h NFSD: Ensure nf_inode is never dereferenced 2022-07-29 20:16:56 -04:00
flexfilelayout.c nfsd: use correct format characters 2022-03-17 19:47:38 -04:00
flexfilelayoutxdr.c
flexfilelayoutxdr.h
idmap.h
Kconfig NFSD: Remove CONFIG_NFSD_V3 2022-03-11 10:25:14 -05:00
lockd.c NFSD: simplify struct nfsfh 2021-10-02 15:51:10 -04:00
Makefile NFSD: Remove CONFIG_NFSD_V3 2022-03-11 10:25:14 -05:00
netns.h NFSD: limit the number of v4 clients to 1024 per 1GB of system memory 2022-07-29 20:16:56 -04:00
nfs2acl.c NFSD: use (un)lock_inode instead of fh_(un)lock for file operations 2022-08-04 10:28:41 -04:00
nfs3acl.c NFSD: use (un)lock_inode instead of fh_(un)lock for file operations 2022-08-04 10:28:41 -04:00
nfs3proc.c NFSD: Protect against send buffer overflow in NFSv3 READ 2022-09-26 14:02:30 -04:00
nfs3xdr.c NFSD: Deprecate NFS_OFFSET_MAX 2022-02-09 09:24:40 -05:00
nfs4acl.c NFSD: add posix ACLs to struct nfsd_attrs 2022-08-04 10:28:03 -04:00
nfs4callback.c NFSD: Move copy offload callback arguments into a separate structure 2022-07-29 20:17:00 -04:00
nfs4idmap.c NFSD: move from strlcpy with unused retval to strscpy 2022-09-26 14:02:20 -04:00
nfs4layouts.c NFSD: Add tracepoints to report NFSv4 callback completions 2022-09-26 14:02:32 -04:00
nfs4proc.c NFSD: Add tracepoints to report NFSv4 callback completions 2022-09-26 14:02:32 -04:00
nfs4recover.c nfsd: Propagate some error code returned by memdup_user() 2022-09-26 14:02:22 -04:00
nfs4state.c NFSD: Add a mechanism to wait for a DELEGRETURN 2022-09-26 14:02:32 -04:00
nfs4xdr.c nfsd: clean up mounted_on_fileid handling 2022-09-26 14:02:30 -04:00
nfscache.c mm: shrinkers: provide shrinkers with names 2022-07-03 18:08:40 -07:00
nfsctl.c nfsd: silence extraneous printk on nfsd.ko insertion 2022-07-29 20:16:56 -04:00
nfsd.h NFSD: Add a mechanism to wait for a DELEGRETURN 2022-09-26 14:02:32 -04:00
nfsfh.c NFSD: Replace dprintk() call site in fh_verify() 2022-09-26 14:02:31 -04:00
nfsfh.h NFSD: discard fh_locked flag and fh_lock/fh_unlock 2022-08-04 10:28:48 -04:00
nfsproc.c NFSD: drop fname and flen args from nfsd_create_locked() 2022-09-26 14:02:30 -04:00
nfssvc.c NFSD: move from strlcpy with unused retval to strscpy 2022-09-26 14:02:20 -04:00
nfsxdr.c SUNRPC: Change return value type of .pc_encode 2021-10-13 11:34:49 -04:00
pnfs.h
state.h nfsd: remove nfsd4_prepare_cb_recall() declaration 2022-09-26 14:02:31 -04:00
stats.c nfsd: make nfsd_stats.th_cnt atomic_t 2021-12-13 13:42:51 -05:00
stats.h nfsd: make nfsd_stats.th_cnt atomic_t 2021-12-13 13:42:51 -05:00
trace.c NFSD: Add SPDX header for fs/nfsd/trace.c 2020-11-30 13:00:24 -05:00
trace.h NFSD: Add a mechanism to wait for a DELEGRETURN 2022-09-26 14:02:32 -04:00
vfs.c NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY 2022-09-26 14:02:40 -04:00
vfs.h NFSD: drop fname and flen args from nfsd_create_locked() 2022-09-26 14:02:30 -04:00
xdr3.h SUNRPC: Change return value type of .pc_encode 2021-10-13 11:34:49 -04:00
xdr4.h NFSD: Fix handling of oversized NFSv4 COMPOUND requests 2022-09-26 14:02:30 -04:00
xdr4cb.h
xdr.h NFSD: prevent underflow in nfssvc_decode_writeargs() 2022-03-15 09:35:56 -04:00