summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/state.h
diff options
context:
space:
mode:
authorJeff Layton <jlayton@primarydata.com>2014-07-29 21:34:27 -0400
committerJ. Bruce Fields <bfields@redhat.com>2014-07-31 14:20:19 -0400
commit58fb12e6a42f30adf209f8f41385a3bbb2c82420 (patch)
tree5ca75f92bd5aa9629f30c21d6e0e8df8f0984235 /fs/nfsd/state.h
parent6b180f0b57af0295e8dc2602a7a4781241766340 (diff)
downloadop-kernel-dev-58fb12e6a42f30adf209f8f41385a3bbb2c82420.zip
op-kernel-dev-58fb12e6a42f30adf209f8f41385a3bbb2c82420.tar.gz
nfsd: Add a mutex to protect the NFSv4.0 open owner replay cache
We don't want to rely on the client_mutex for protection in the case of NFSv4 open owners. Instead, we add a mutex that will only be taken for NFSv4.0 state mutating operations, and that will be released once the entire compound is done. Also, ensure that nfsd4_cstate_assign_replay/nfsd4_cstate_clear_replay take a reference to the stateowner when they are using it for NFSv4.0 open and lock replay caching. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Jeff Layton <jlayton@primarydata.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r--fs/nfsd/state.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index dc725de..9cba295 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -328,6 +328,7 @@ struct nfs4_replay {
unsigned int rp_buflen;
char *rp_buf;
struct knfsd_fh rp_openfh;
+ struct mutex rp_mutex;
char rp_ibuf[NFSD4_REPLAY_ISIZE];
};
OpenPOWER on IntegriCloud