[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <165590731118.75778.13970409813627047015.stgit@manet.1015granger.net>
Date: Wed, 22 Jun 2022 10:15:11 -0400
From: Chuck Lever <chuck.lever@...cle.com>
To: linux-nfs@...r.kernel.org, netdev@...r.kernel.org
Cc: david@...morbit.com, tgraf@...g.ch, jlayton@...hat.com
Subject: [PATCH RFC 22/30] NFSD: nfsd_file_hash_remove can compute hashval
Remove an unnecessary use of nf_hashval.
Signed-off-by: Chuck Lever <chuck.lever@...cle.com>
---
fs/nfsd/filecache.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c
index 0387b2028a9b..fa793413bc1f 100644
--- a/fs/nfsd/filecache.c
+++ b/fs/nfsd/filecache.c
@@ -295,6 +295,18 @@ nfsd_file_do_unhash(struct nfsd_file *nf)
atomic_long_dec(&nfsd_filecache_count);
}
+static void
+nfsd_file_hash_remove(struct nfsd_file *nf)
+{
+ struct inode *inode = nf->nf_inode;
+ unsigned int hashval = (unsigned int)hash_long(inode->i_ino,
+ NFSD_FILE_HASH_BITS);
+
+ spin_lock(&nfsd_file_hashtbl[hashval].nfb_lock);
+ nfsd_file_do_unhash(nf);
+ spin_unlock(&nfsd_file_hashtbl[hashval].nfb_lock);
+}
+
static bool
nfsd_file_unhash(struct nfsd_file *nf)
{
@@ -513,11 +525,8 @@ static void nfsd_file_gc_dispose_list(struct list_head *dispose)
{
struct nfsd_file *nf;
- list_for_each_entry(nf, dispose, nf_lru) {
- spin_lock(&nfsd_file_hashtbl[nf->nf_hashval].nfb_lock);
- nfsd_file_do_unhash(nf);
- spin_unlock(&nfsd_file_hashtbl[nf->nf_hashval].nfb_lock);
- }
+ list_for_each_entry(nf, dispose, nf_lru)
+ nfsd_file_hash_remove(nf);
nfsd_file_dispose_list_delayed(dispose);
}
Powered by blists - more mailing lists