]> git.baikalelectronics.ru Git - kernel.git/commit
nfsd: Reduce contention for the nfsd_file nf_rwsem
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Thu, 17 Jun 2021 23:26:52 +0000 (19:26 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 7 Jul 2021 00:14:44 +0000 (20:14 -0400)
commitd95661ddc183fb546b261a373095f814f2bbbaee
treecc20b6c784eb464070790b61ed86c7c278510275
parent6e6984418dbe8146723f0448fc61a074529a8d27
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: 5742383a424f ("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>
fs/nfsd/vfs.c