diff options
author | Sage Weil <sage@newdream.net> | 2011-05-27 16:42:18 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-05-28 01:02:54 -0400 |
commit | f4ff0e25c5093dd89e9cac4a8f71a57587ada787 (patch) | |
tree | 2c8414420a23d47152a03f283e97d5b3533401b6 /fs/fat | |
parent | 45adfef7d023004ff95bf63b5f2f0e2d88afac3f (diff) |
fat: remove unnecessary dentry_unhash on rmdir, dir rename
fat does not have problems with references to unlinked directories.
CC: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fat')
-rw-r--r-- | fs/fat/namei_msdos.c | 5 | ||||
-rw-r--r-- | fs/fat/namei_vfat.c | 5 |
2 files changed, 0 insertions, 10 deletions
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c index be15437c272e..3b222dafd15b 100644 --- a/fs/fat/namei_msdos.c +++ b/fs/fat/namei_msdos.c | |||
@@ -326,8 +326,6 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry) | |||
326 | struct fat_slot_info sinfo; | 326 | struct fat_slot_info sinfo; |
327 | int err; | 327 | int err; |
328 | 328 | ||
329 | dentry_unhash(dentry); | ||
330 | |||
331 | lock_super(sb); | 329 | lock_super(sb); |
332 | /* | 330 | /* |
333 | * Check whether the directory is not in use, then check | 331 | * Check whether the directory is not in use, then check |
@@ -459,9 +457,6 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name, | |||
459 | old_inode = old_dentry->d_inode; | 457 | old_inode = old_dentry->d_inode; |
460 | new_inode = new_dentry->d_inode; | 458 | new_inode = new_dentry->d_inode; |
461 | 459 | ||
462 | if (new_inode && S_ISDIR(new_inode->i_mode)) | ||
463 | dentry_unhash(new_dentry); | ||
464 | |||
465 | err = fat_scan(old_dir, old_name, &old_sinfo); | 460 | err = fat_scan(old_dir, old_name, &old_sinfo); |
466 | if (err) { | 461 | if (err) { |
467 | err = -EIO; | 462 | err = -EIO; |
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c index c61a6789f36c..20b4ea53fdc4 100644 --- a/fs/fat/namei_vfat.c +++ b/fs/fat/namei_vfat.c | |||
@@ -824,8 +824,6 @@ static int vfat_rmdir(struct inode *dir, struct dentry *dentry) | |||
824 | struct fat_slot_info sinfo; | 824 | struct fat_slot_info sinfo; |
825 | int err; | 825 | int err; |
826 | 826 | ||
827 | dentry_unhash(dentry); | ||
828 | |||
829 | lock_super(sb); | 827 | lock_super(sb); |
830 | 828 | ||
831 | err = fat_dir_empty(inode); | 829 | err = fat_dir_empty(inode); |
@@ -933,9 +931,6 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
933 | int err, is_dir, update_dotdot, corrupt = 0; | 931 | int err, is_dir, update_dotdot, corrupt = 0; |
934 | struct super_block *sb = old_dir->i_sb; | 932 | struct super_block *sb = old_dir->i_sb; |
935 | 933 | ||
936 | if (new_dentry->d_inode && S_ISDIR(new_dentry->d_inode->i_mode)) | ||
937 | dentry_unhash(new_dentry); | ||
938 | |||
939 | old_sinfo.bh = sinfo.bh = dotdot_bh = NULL; | 934 | old_sinfo.bh = sinfo.bh = dotdot_bh = NULL; |
940 | old_inode = old_dentry->d_inode; | 935 | old_inode = old_dentry->d_inode; |
941 | new_inode = new_dentry->d_inode; | 936 | new_inode = new_dentry->d_inode; |