omfs: remove unnecessary dentry_unhash on rmdir, dir rneame
authorSage Weil <sage@newdream.net>
Fri, 27 May 2011 20:42:04 +0000 (13:42 -0700)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 28 May 2011 05:02:52 +0000 (01:02 -0400)
omfs does not have problems with references to unlinked directories.

CC: Bob Copeland <me@bobcopeland.com>
CC: linux-karma-devel@lists.sourceforge.net
Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/omfs/dir.c

index c368360c35a167be19592642f803dd4211f20b49..3b8d3979e03b69230dd1991c9f69c0d49344cca9 100644 (file)
@@ -241,11 +241,9 @@ static int omfs_remove(struct inode *dir, struct dentry *dentry)
        int ret;
 
 
-       if (S_ISDIR(inode->i_mode)) {
-               dentry_unhash(dentry);
-               if (!omfs_dir_is_empty(inode))
-                       return -ENOTEMPTY;
-       }
+       if (S_ISDIR(inode->i_mode) &&
+           !omfs_dir_is_empty(inode))
+               return -ENOTEMPTY;
 
        ret = omfs_delete_entry(dentry);
        if (ret)
@@ -382,9 +380,6 @@ static int omfs_rename(struct inode *old_dir, struct dentry *old_dentry,
        int err;
 
        if (new_inode) {
-               if (S_ISDIR(new_inode->i_mode))
-                       dentry_unhash(new_dentry);
-
                /* overwriting existing file/dir */
                err = omfs_remove(new_dir, new_dentry);
                if (err)