nfsd: Replace use of rwsem with errseq_t
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sun, 19 Dec 2021 01:38:01 +0000 (20:38 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Sat, 8 Jan 2022 19:42:02 +0000 (14:42 -0500)
commit555dbf1a9aac6d3150c8b52fa35f768a692f4eeb
tree153fdbfe95cc5a1db17151d7e60ec132848e36ef
parentf11ad7aa653130b71e2e89bed207f387718216d5
nfsd: Replace use of rwsem with errseq_t

The nfsd_file nf_rwsem is currently being used to separate file write
and commit instances to ensure that we catch errors and apply them to
the correct write/commit.
We can improve scalability at the expense of a little accuracy (some
extra false positives) by replacing the nf_rwsem with more careful
use of the errseq_t mechanism to track errors across the different
operations.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
[ cel: rebased on zero-verifier fix ]
fs/nfsd/filecache.c
fs/nfsd/filecache.h
fs/nfsd/nfs4proc.c
fs/nfsd/vfs.c