diff options
-rw-r--r-- | fs/orangefs/dcache.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/fs/orangefs/dcache.c b/fs/orangefs/dcache.c index a6911dbbf3e5..3c1703fbb60e 100644 --- a/fs/orangefs/dcache.c +++ b/fs/orangefs/dcache.c @@ -82,7 +82,6 @@ out_put_parent: out_drop: gossip_debug(GOSSIP_DCACHE_DEBUG, "%s:%s:%d revalidate failed\n", __FILE__, __func__, __LINE__); - d_drop(dentry); goto out_release_op; } @@ -109,10 +108,8 @@ static int orangefs_d_revalidate(struct dentry *dentry, unsigned int flags) * If this passes, the positive dentry still exists or the negative * dentry still does not exist. */ - if (!orangefs_revalidate_lookup(dentry)) { - d_drop(dentry); + if (!orangefs_revalidate_lookup(dentry)) return 0; - } /* We do not need to continue with negative dentries. */ if (!dentry->d_inode) @@ -125,13 +122,10 @@ static int orangefs_d_revalidate(struct dentry *dentry, unsigned int flags) if (ret < 0) { gossip_debug(GOSSIP_DCACHE_DEBUG, "%s:%s:%d getattr failure.\n", __FILE__, __func__, __LINE__); - d_drop(dentry); return 0; } - if (ret == 0) { - d_drop(dentry); + if (ret == 0) return 0; - } out: gossip_debug(GOSSIP_DCACHE_DEBUG, |