linux/fs/nfsd
Trond Myklebust 474bc33469 nfsd: Reduce contention for the nfsd_file nf_rwsem
When flushing out the unstable file writes as part of a COMMIT call, try
to perform most of of the data writes and waits outside the semaphore.

This means that if the client is sending the COMMIT as part of a memory
reclaim operation, then it can continue performing I/O, with contention
for the lock occurring only once the data sync is finished.

Fixes: 5011af4c69 ("nfsd: Fix stable writes")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
 Tested-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2021-07-06 20:14:44 -04:00
..
acl.h nfsd: eliminate an unnecessary acl size limit 2019-08-28 21:13:45 -04:00
auth.c
auth.h
blocklayout.c block: remove unnecessary argument from blk_execute_rq 2021-01-24 21:52:39 -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 idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
export.h nfsd: report per-export stats 2021-01-25 09:36:28 -05:00
fault_inject.c nfsd: no need to check return value of debugfs_create functions 2019-07-03 16:57:17 +02:00
filecache.c nfsd: Don't keep looking up unhashed files in the nfsd file cache 2021-03-06 16:41:47 -05:00
filecache.h nfsd: convert file cache to use over/underflow safe refcount 2020-02-06 11:22:55 -05:00
flexfilelayout.c
flexfilelayoutxdr.c
flexfilelayoutxdr.h
idmap.h
Kconfig NFS client updates for Linux 5.13 2021-05-07 11:23:41 -07:00
lockd.c
Makefile nfsd: remove fault injection code 2020-09-25 18:01:26 -04:00
netns.h NFSD: delay unmount source's export after inter-server copy completed. 2021-05-25 17:06:51 -04:00
nfs2acl.c NFSD: Update the NFSv2 ACL ACCESS result encoder to use struct xdr_stream 2021-03-22 10:19:01 -04:00
nfs3acl.c NFSD: Update the NFSv3 SETACL result encoder to use struct xdr_stream 2021-03-22 10:19:02 -04:00
nfs3proc.c NFSD: Reduce svc_rqst::rq_pages churn during READDIR operations 2021-03-22 10:18:56 -04:00
nfs3xdr.c NFSD: Clean up NFSDDBG_FACILITY macro 2021-03-22 10:19:02 -04:00
nfs4acl.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00
nfs4callback.c nfsd: rpc_peeraddr2str needs rcu lock 2021-07-06 20:14:42 -04:00
nfs4idmap.c nfsd: Use seq_putc() in two functions 2020-07-13 17:28:46 -04:00
nfs4layouts.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
nfs4proc.c NFSD: Fix error return code in nfsd4_interssc_connect() 2021-07-06 20:14:41 -04:00
nfs4recover.c nfsd: Log client tracking type log message as info instead of warning 2021-03-22 10:19:03 -04:00
nfs4state.c nfsd: fix kernel test robot warning in SSC code 2021-07-06 20:14:41 -04:00
nfs4xdr.c treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
nfscache.c nfsd: protect concurrent access to nfsd stats counters 2021-01-25 09:36:27 -05:00
nfsctl.c nfsd: Fix fall-through warnings for Clang 2021-04-20 16:55:07 -04:00
nfsd.h NFSD: delay unmount source's export after inter-server copy completed. 2021-05-25 17:06:51 -04:00
nfsfh.c NFSD: Update the GETATTR3res encoder to use struct xdr_stream 2021-03-22 10:18:51 -04:00
nfsfh.h NFSD: Constify @fh argument of knfsd_fh_hash() 2021-05-18 13:44:03 -04:00
nfsproc.c Merge branch 'work.inode-type-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2021-04-27 10:57:42 -07:00
nfssvc.c NFSD: delay unmount source's export after inter-server copy completed. 2021-05-25 17:06:51 -04:00
nfsxdr.c NFSD: Clean up NFSDDBG_FACILITY macro 2021-03-22 10:19:02 -04:00
pnfs.h
state.h nfsd: track filehandle aliasing in nfs4_files 2021-04-19 16:41:36 -04:00
stats.c nfsd: protect concurrent access to nfsd stats counters 2021-01-25 09:36:27 -05:00
stats.h nfsd: report per-export stats 2021-01-25 09:36:28 -05:00
trace.c NFSD: Add SPDX header for fs/nfsd/trace.c 2020-11-30 13:00:24 -05:00
trace.h NFSD: Update nfsd_cb_args tracepoint 2021-05-18 13:44:04 -04:00
vfs.c nfsd: Reduce contention for the nfsd_file nf_rwsem 2021-07-06 20:14:44 -04:00
vfs.h NFSD: Update the NFSv3 ACCESS3res encoder to use struct xdr_stream 2021-03-22 10:18:52 -04:00
xdr3.h NFSD: Clean up after updating NFSv3 ACL encoders 2021-03-22 10:19:02 -04:00
xdr4.h NFSD add vfs_fsync after async copy is done 2021-05-25 17:06:51 -04:00
xdr4cb.h
xdr.h NFSD: Clean up after updating NFSv2 ACL encoders 2021-03-22 10:19:01 -04:00