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 | |
| 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>
| -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; |
