fs: nfsd: nfs4state.c: Use built-in RCU list checking
authorMadhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
Thu, 13 Feb 2020 15:03:31 +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/nfs4state.c

index 65cfe9ab47be0e25c552511f51552218c15d3012..c1f347bbf8f400c6751f1a3e70376b0645caae05 100644 (file)
@@ -4343,7 +4343,8 @@ find_file_locked(struct knfsd_fh *fh, unsigned int hashval)
 {
        struct nfs4_file *fp;
 
-       hlist_for_each_entry_rcu(fp, &file_hashtbl[hashval], fi_hash) {
+       hlist_for_each_entry_rcu(fp, &file_hashtbl[hashval], fi_hash,
+                               lockdep_is_held(&state_lock)) {
                if (fh_match(&fp->fi_fhandle, fh)) {
                        if (refcount_inc_not_zero(&fp->fi_ref))
                                return fp;