On Fri, 2022-10-28 at 10:47 -0400, Chuck Lever wrote: > find_file() is now the only caller of find_file_locked(), so just > fold these two together. > > Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> > Reviewed-by: NeilBrown <neilb@xxxxxxx> > --- > fs/nfsd/nfs4state.c | 36 +++++++++++++++--------------------- > 1 file changed, 15 insertions(+), 21 deletions(-) > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > index b1988a46fb9b..2b694d693be5 100644 > --- a/fs/nfsd/nfs4state.c > +++ b/fs/nfsd/nfs4state.c > @@ -4667,31 +4667,24 @@ move_to_close_lru(struct nfs4_ol_stateid *s, struct net *net) > nfs4_put_stid(&last->st_stid); > } > > -/* search file_hashtbl[] for file */ > -static struct nfs4_file * > -find_file_locked(const struct svc_fh *fh, unsigned int hashval) > +static noinline_for_stack struct nfs4_file * > +nfsd4_file_hash_lookup(const struct svc_fh *fhp) > { > - struct nfs4_file *fp; > + unsigned int hashval = file_hashval(fhp); > + struct nfs4_file *fi; > > - hlist_for_each_entry_rcu(fp, &file_hashtbl[hashval], fi_hash, > - lockdep_is_held(&state_lock)) { > - if (fh_match(&fp->fi_fhandle, &fh->fh_handle)) { > - if (refcount_inc_not_zero(&fp->fi_ref)) > - return fp; > + rcu_read_lock(); > + hlist_for_each_entry_rcu(fi, &file_hashtbl[hashval], fi_hash, > + lockdep_is_held(&state_lock)) { > + if (fh_match(&fi->fi_fhandle, &fhp->fh_handle)) { > + if (refcount_inc_not_zero(&fi->fi_ref)) { > + rcu_read_unlock(); > + return fi; > + } > } > } > - return NULL; > -} > - > -static struct nfs4_file * find_file(struct svc_fh *fh) > -{ > - struct nfs4_file *fp; > - unsigned int hashval = file_hashval(fh); > - > - rcu_read_lock(); > - fp = find_file_locked(fh, hashval); > rcu_read_unlock(); > - return fp; > + return NULL; > } > > /* > @@ -4742,9 +4735,10 @@ nfs4_share_conflict(struct svc_fh *current_fh, unsigned int deny_type) > struct nfs4_file *fp; > __be32 ret = nfs_ok; > > - fp = find_file(current_fh); > + fp = nfsd4_file_hash_lookup(current_fh); > if (!fp) > return ret; > + > /* Check for conflicting share reservations */ > spin_lock(&fp->fi_lock); > if (fp->fi_share_deny & deny_type) > > Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>