nfs: Fix nfs_access_get_cached_rcu() sparse error
authorMadhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
Tue, 10 Dec 2019 05:46:39 +0000 (11:16 +0530)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 20 Feb 2020 23:58:21 +0000 (15:58 -0800)
This patch fixes the following sparse error:
fs/nfs/dir.c:2353:14: error: incompatible types in comparison expression (different address spaces):
fs/nfs/dir.c:2353:14:    struct list_head [noderef] <asn:4> *
fs/nfs/dir.c:2353:14:    struct list_head *

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
fs/nfs/dir.c

index 1320288..55a29b0 100644 (file)
@@ -2383,7 +2383,7 @@ static int nfs_access_get_cached_rcu(struct inode *inode, const struct cred *cre
        rcu_read_lock();
        if (nfsi->cache_validity & NFS_INO_INVALID_ACCESS)
                goto out;
-       lh = rcu_dereference(nfsi->access_cache_entry_lru.prev);
+       lh = rcu_dereference(list_tail_rcu(&nfsi->access_cache_entry_lru));
        cache = list_entry(lh, struct nfs_access_entry, lru);
        if (lh == &nfsi->access_cache_entry_lru ||
            cred_fscmp(cred, cache->cred) != 0)