aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)
463/* 463/*
464 * nfs4_file: a file opened by some number of (open) nfs4_stateowners. 464 * nfs4_file: a file opened by some number of (open) nfs4_stateowners.
465 * 465 *
466 * These objects are global. nfsd only keeps one instance of a nfs4_file per 466 * These objects are global. nfsd keeps one instance of a nfs4_file per
467 * inode (though it may keep multiple file descriptors open per inode). These 467 * filehandle (though it may keep multiple file descriptors for each). Each
468 * are tracked in the file_hashtbl which is protected by the state_lock 468 * inode can have multiple filehandles associated with it, so there is
469 * spinlock. 469 * (potentially) a many to one relationship between this struct and struct
470 * inode.
471 *
472 * These are hashed by filehandle in the file_hashtbl, which is protected by
473 * the global state_lock spinlock.
470 */ 474 */
471struct nfs4_file { 475struct nfs4_file {
472 atomic_t fi_ref; 476 atomic_t fi_ref;
473 spinlock_t fi_lock; 477 spinlock_t fi_lock;
474 struct hlist_node fi_hash; /* hash by "struct inode *" */ 478 struct hlist_node fi_hash; /* hash on fi_fhandle */
475 struct list_head fi_stateids; 479 struct list_head fi_stateids;
476 struct list_head fi_delegations; 480 struct list_head fi_delegations;
477 /* One each for O_RDONLY, O_WRONLY, O_RDWR: */ 481 /* One each for O_RDONLY, O_WRONLY, O_RDWR: */