Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8d436f0 authored by Yan, Zheng's avatar Yan, Zheng Committed by Sage Weil
Browse files

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: default avatarYan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: default avatarSage Weil <sage@inktank.com>
parent ed284c49
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2346,10 +2346,10 @@ static void invalidate_aliases(struct inode *inode)
	d_prune_aliases(inode);
	/*
	 * 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
	 * one alias at most.
	 */
@@ -2358,7 +2358,7 @@ static void invalidate_aliases(struct inode *inode)
			dput(dn);
			break;
		}
		d_delete(dn);
		d_invalidate(dn);
		if (prev)
			dput(prev);
		prev = dn;