浏览代码

ceph: use d_invalidate() to invalidate aliases

d_invalidate() is the standard VFS method to invalidate dentry.
compare to d_delete(), it also try shrinking children dentries.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Yan, Zheng 12 年之前
父节点
当前提交
a8d436f015
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      fs/ceph/caps.c

+ 4 - 4
fs/ceph/caps.c

@@ -2346,10 +2346,10 @@ static void invalidate_aliases(struct inode *inode)
 	d_prune_aliases(inode);
 	d_prune_aliases(inode);
 	/*
 	/*
 	 * For non-directory inode, d_find_alias() only returns
 	 * For non-directory inode, d_find_alias() only returns
-	 * connected dentry. After calling d_delete(), the dentry
-	 * become disconnected.
+	 * connected dentry. After calling d_invalidate(), the
+	 * dentry become disconnected.
 	 *
 	 *
-	 * For directory inode, d_find_alias() only can return
+	 * For directory inode, d_find_alias() can return
 	 * disconnected dentry. But directory inode should have
 	 * disconnected dentry. But directory inode should have
 	 * one alias at most.
 	 * one alias at most.
 	 */
 	 */
@@ -2358,7 +2358,7 @@ static void invalidate_aliases(struct inode *inode)
 			dput(dn);
 			dput(dn);
 			break;
 			break;
 		}
 		}
-		d_delete(dn);
+		d_invalidate(dn);
 		if (prev)
 		if (prev)
 			dput(prev);
 			dput(prev);
 		prev = dn;
 		prev = dn;