ext4: remove useless marking of superblock dirty
authorJan Kara <jack@suse.cz>
Mon, 23 Jul 2012 00:29:31 +0000 (20:29 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 23 Jul 2012 00:29:31 +0000 (20:29 -0400)
Commit a0375156 properly notes that superblock doesn't need to be marked
as dirty when only number of free inodes / blocks / number of directories
changes since that is recomputed on each mount anyway. However that comment
leaves some unnecessary markings as dirty in place. Remove these.

Artem: tested using xfstests for both journalled and non-journalled ext4.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Tested-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
fs/ext4/ialloc.c
fs/ext4/mballoc.c

index 6866bc233e949bbfc66239e6275bd1bbd8ad8744..26154b81b83679aaf711f52477f2d048d6078d5a 100644 (file)
@@ -315,7 +315,6 @@ out:
                err = ext4_handle_dirty_metadata(handle, NULL, bitmap_bh);
                if (!fatal)
                        fatal = err;
-               ext4_mark_super_dirty(sb);
        } else
                ext4_error(sb, "bit already cleared for inode %lu", ino);
 
@@ -830,7 +829,6 @@ got:
        percpu_counter_dec(&sbi->s_freeinodes_counter);
        if (S_ISDIR(mode))
                percpu_counter_inc(&sbi->s_dirs_counter);
-       ext4_mark_super_dirty(sb);
 
        if (sbi->s_log_groups_per_flex) {
                flex_group = ext4_flex_group(sbi, group);
index ca376e7d716aab614f2e58b822ad051e44167e14..8eae94771c45b09df3ceac23ab21966c1bebebe5 100644 (file)
@@ -2831,7 +2831,6 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
        err = ext4_handle_dirty_metadata(handle, NULL, gdp_bh);
 
 out_err:
-       ext4_mark_super_dirty(sb);
        brelse(bitmap_bh);
        return err;
 }
@@ -4700,7 +4699,6 @@ do_more:
                put_bh(bitmap_bh);
                goto do_more;
        }
-       ext4_mark_super_dirty(sb);
 error_return:
        brelse(bitmap_bh);
        ext4_std_error(sb, err);