summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfsd.h
diff options
context:
space:
mode:
authorJ. Bruce Fields2010-07-08 17:02:09 +0200
committerJ. Bruce Fields2010-07-30 00:19:23 +0200
commitf9d7562fdb9dc0ada3a7aba5dbbe9d965e2a105d (patch)
treebbeb32b2cc49b6c6dafae57331a680b906017b6e /fs/nfsd/nfsd.h
parentnfsd4: fix openmode checking on IO using lock stateid (diff)
downloadkernel-qcow2-linux-f9d7562fdb9dc0ada3a7aba5dbbe9d965e2a105d.tar.gz
kernel-qcow2-linux-f9d7562fdb9dc0ada3a7aba5dbbe9d965e2a105d.tar.xz
kernel-qcow2-linux-f9d7562fdb9dc0ada3a7aba5dbbe9d965e2a105d.zip
nfsd4: share file descriptors between stateid's
The vfs doesn't really allow us to "upgrade" a file descriptor from read-only to read-write, and our attempt to do so in nfs4_upgrade_open is ugly and incomplete. Move to a different scheme where we keep multiple opens, shared between open stateid's, in the nfs4_file struct. Each file will be opened at most 3 times (for read, write, and read-write), and those opens will be shared between all clients and openers. On upgrade we will do another open if necessary instead of attempting to upgrade an existing open. We keep count of the number of readers and writers so we know when to close the shared files. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd/nfsd.h')
-rw-r--r--fs/nfsd/nfsd.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h
index 72377761270e..b76ac3a82e39 100644
--- a/fs/nfsd/nfsd.h
+++ b/fs/nfsd/nfsd.h
@@ -153,6 +153,7 @@ void nfsd_lockd_shutdown(void);
#define nfserr_bad_seqid cpu_to_be32(NFSERR_BAD_SEQID)
#define nfserr_symlink cpu_to_be32(NFSERR_SYMLINK)
#define nfserr_not_same cpu_to_be32(NFSERR_NOT_SAME)
+#define nfserr_lock_range cpu_to_be32(NFSERR_LOCK_RANGE)
#define nfserr_restorefh cpu_to_be32(NFSERR_RESTOREFH)
#define nfserr_attrnotsupp cpu_to_be32(NFSERR_ATTRNOTSUPP)
#define nfserr_bad_xdr cpu_to_be32(NFSERR_BAD_XDR)