fs: nfsd: fileache.c: Use built-in RCU list checking
authorMadhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
Thu, 13 Feb 2020 15:03:59 +0000 (20:33 +0530)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 16 Mar 2020 16:04:31 +0000 (12:04 -0400)
list_for_each_entry_rcu() has built-in RCU and lock checking.

Pass cond argument to list_for_each_entry_rcu() to silence
false lockdep warning when  CONFIG_PROVE_RCU_LIST is enabled
by default.

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/filecache.c

index 22e77ed..82198d7 100644 (file)
@@ -890,7 +890,7 @@ nfsd_file_find_locked(struct inode *inode, unsigned int may_flags,
        unsigned char need = may_flags & NFSD_FILE_MAY_MASK;
 
        hlist_for_each_entry_rcu(nf, &nfsd_file_hashtbl[hashval].nfb_head,
-                                nf_node) {
+                                nf_node, lockdep_is_held(&nfsd_file_hashtbl[hashval].nfb_lock)) {
                if ((need & nf->nf_may) != need)
                        continue;
                if (nf->nf_inode != inode)