From: Martin Brandenburg Date: Sat, 20 Feb 2016 18:10:47 +0000 (-0500) Subject: orangefs: don't d_drop in d_revalidate since the caller will X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ee70fca0bc9a4a85c239e4f08b7ebf8351d2a733;p=linux-beck.git orangefs: don't d_drop in d_revalidate since the caller will Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall --- 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,