diff options
Diffstat (limited to 'fs/ntfs/super.c')
-rw-r--r-- | fs/ntfs/super.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index 19c5180f8a28..d3fbe5730bfc 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c | |||
@@ -2911,8 +2911,8 @@ static int ntfs_fill_super(struct super_block *sb, void *opt, const int silent) | |||
2911 | goto unl_upcase_iput_tmp_ino_err_out_now; | 2911 | goto unl_upcase_iput_tmp_ino_err_out_now; |
2912 | } | 2912 | } |
2913 | if ((sb->s_root = d_alloc_root(vol->root_ino))) { | 2913 | if ((sb->s_root = d_alloc_root(vol->root_ino))) { |
2914 | /* We increment i_count simulating an ntfs_iget(). */ | 2914 | /* We grab a reference, simulating an ntfs_iget(). */ |
2915 | atomic_inc(&vol->root_ino->i_count); | 2915 | ihold(vol->root_ino); |
2916 | ntfs_debug("Exiting, status successful."); | 2916 | ntfs_debug("Exiting, status successful."); |
2917 | /* Release the default upcase if it has no users. */ | 2917 | /* Release the default upcase if it has no users. */ |
2918 | mutex_lock(&ntfs_lock); | 2918 | mutex_lock(&ntfs_lock); |
@@ -3021,21 +3021,6 @@ iput_tmp_ino_err_out_now: | |||
3021 | if (vol->mft_ino && vol->mft_ino != tmp_ino) | 3021 | if (vol->mft_ino && vol->mft_ino != tmp_ino) |
3022 | iput(vol->mft_ino); | 3022 | iput(vol->mft_ino); |
3023 | vol->mft_ino = NULL; | 3023 | vol->mft_ino = NULL; |
3024 | /* | ||
3025 | * This is needed to get ntfs_clear_extent_inode() called for each | ||
3026 | * inode we have ever called ntfs_iget()/iput() on, otherwise we A) | ||
3027 | * leak resources and B) a subsequent mount fails automatically due to | ||
3028 | * ntfs_iget() never calling down into our ntfs_read_locked_inode() | ||
3029 | * method again... FIXME: Do we need to do this twice now because of | ||
3030 | * attribute inodes? I think not, so leave as is for now... (AIA) | ||
3031 | */ | ||
3032 | if (invalidate_inodes(sb)) { | ||
3033 | ntfs_error(sb, "Busy inodes left. This is most likely a NTFS " | ||
3034 | "driver bug."); | ||
3035 | /* Copied from fs/super.c. I just love this message. (-; */ | ||
3036 | printk("NTFS: Busy inodes after umount. Self-destruct in 5 " | ||
3037 | "seconds. Have a nice day...\n"); | ||
3038 | } | ||
3039 | /* Errors at this stage are irrelevant. */ | 3024 | /* Errors at this stage are irrelevant. */ |
3040 | err_out_now: | 3025 | err_out_now: |
3041 | sb->s_fs_info = NULL; | 3026 | sb->s_fs_info = NULL; |