summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/state.h
diff options
context:
space:
mode:
authorJeff Layton <jlayton@primarydata.com>2014-10-16 14:49:37 +0200
committerJ. Bruce Fields <bfields@redhat.com>2014-10-23 20:05:11 +0200
commitccc6398ea5d58fdedc6caccba0216ab30739773b (patch)
tree03102565f5a8e9ef9979e73d4f846968f29efd82 /fs/nfsd/state.h
parentNFSD: Always initialize cl_cb_addr (diff)
downloadlinux-ccc6398ea5d58fdedc6caccba0216ab30739773b.tar.xz
linux-ccc6398ea5d58fdedc6caccba0216ab30739773b.zip
nfsd: clean up comments over nfs4_file definition
They're a bit outdated wrt to some recent changes. Signed-off-by: Jeff Layton <jlayton@primarydata.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r--fs/nfsd/state.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index 2712042a66b1..8e85e07efce6 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -463,15 +463,19 @@ static inline struct nfs4_lockowner * lockowner(struct nfs4_stateowner *so)
/*
* nfs4_file: a file opened by some number of (open) nfs4_stateowners.
*
- * These objects are global. nfsd only keeps one instance of a nfs4_file per
- * inode (though it may keep multiple file descriptors open per inode). These
- * are tracked in the file_hashtbl which is protected by the state_lock
- * spinlock.
+ * These objects are global. nfsd keeps one instance of a nfs4_file per
+ * filehandle (though it may keep multiple file descriptors for each). Each
+ * inode can have multiple filehandles associated with it, so there is
+ * (potentially) a many to one relationship between this struct and struct
+ * inode.
+ *
+ * These are hashed by filehandle in the file_hashtbl, which is protected by
+ * the global state_lock spinlock.
*/
struct nfs4_file {
atomic_t fi_ref;
spinlock_t fi_lock;
- struct hlist_node fi_hash; /* hash by "struct inode *" */
+ struct hlist_node fi_hash; /* hash on fi_fhandle */
struct list_head fi_stateids;
struct list_head fi_delegations;
/* One each for O_RDONLY, O_WRONLY, O_RDWR: */