ceph: remove unnecessary dentry_unhash calls
Sage Weil [Tue, 24 May 2011 20:06:14 +0000 (13:06 -0700)]
Ceph does not need these, and they screw up our use of the dcache as a
consistent cache.

Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

fs/ceph/dir.c

index 377b964..1a867a3 100644 (file)
@@ -827,9 +827,6 @@ static int ceph_unlink(struct inode *dir, struct dentry *dentry)
        int err = -EROFS;
        int op;
 
-       if ((dentry->d_inode->i_mode & S_IFMT) == S_IFDIR)
-               dentry_unhash(dentry);
-
        if (ceph_snap(dir) == CEPH_SNAPDIR) {
                /* rmdir .snap/foo is RMSNAP */
                dout("rmsnap dir %p '%.*s' dn %p\n", dir, dentry->d_name.len,
@@ -869,9 +866,6 @@ static int ceph_rename(struct inode *old_dir, struct dentry *old_dentry,
        struct ceph_mds_request *req;
        int err;
 
-       if (new_dentry->d_inode && S_ISDIR(new_dentry->d_inode->i_mode))
-               dentry_unhash(new_dentry);
-
        if (ceph_snap(old_dir) != ceph_snap(new_dir))
                return -EXDEV;
        if (ceph_snap(old_dir) != CEPH_NOSNAP ||