Loading fs/nfsd/state.h +9 −5 Original line number Diff line number Diff line Loading @@ -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: */ Loading Loading
fs/nfsd/state.h +9 −5 Original line number Diff line number Diff line Loading @@ -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: */ Loading