From: "Yan, Zheng" <[email protected]>

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 <[email protected]>
---
 fs/ceph/caps.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index 7b451eb..13976c3 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -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;
-- 
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to