Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

orangefs: don't d_drop in d_revalidate since the caller will

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>

authored by

Martin Brandenburg and committed by
Mike Marshall
ee70fca0 ee3b8d37

+2 -8
+2 -8
fs/orangefs/dcache.c
··· 82 82 out_drop: 83 83 gossip_debug(GOSSIP_DCACHE_DEBUG, "%s:%s:%d revalidate failed\n", 84 84 __FILE__, __func__, __LINE__); 85 - d_drop(dentry); 86 85 goto out_release_op; 87 86 } 88 87 ··· 108 109 * If this passes, the positive dentry still exists or the negative 109 110 * dentry still does not exist. 110 111 */ 111 - if (!orangefs_revalidate_lookup(dentry)) { 112 - d_drop(dentry); 112 + if (!orangefs_revalidate_lookup(dentry)) 113 113 return 0; 114 - } 115 114 116 115 /* We do not need to continue with negative dentries. */ 117 116 if (!dentry->d_inode) ··· 122 125 if (ret < 0) { 123 126 gossip_debug(GOSSIP_DCACHE_DEBUG, "%s:%s:%d getattr failure.\n", 124 127 __FILE__, __func__, __LINE__); 125 - d_drop(dentry); 126 128 return 0; 127 129 } 128 - if (ret == 0) { 129 - d_drop(dentry); 130 + if (ret == 0) 130 131 return 0; 131 - } 132 132 133 133 out: 134 134 gossip_debug(GOSSIP_DCACHE_DEBUG,