]> 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)
commitaf6e1eb1e8f8d7d4e75257af38fd135e1d5b0c44
treecc20b6c784eb464070790b61ed86c7c278510275
parent0aaead3b49af33da4f8db296243942b404e1855a
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: ec1ddefc83bb ("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