ext2: Remove duplicate code from ext2_sync_fs()
Jan Blunck [Wed, 14 Apr 2010 12:38:35 +0000 (14:38 +0200)]
Depending in the state (valid or unchecked) of the filesystem either
ext2_sync_super() or ext2_commit_super() is called. If the filesystem is
currently valid (it is checked), we first mark it unchecked and afterwards
duplicate the work that ext2_sync_super() is doing later. Therefore this
patch removes the duplicate code and calls ext2_sync_super() directly after
marking the filesystem unchecked.

Signed-off-by: Jan Blunck <jblunck@suse.de>
Signed-off-by: Jan Kara <jack@suse.cz>

fs/ext2/super.c

index b205003..09a88bf 100644 (file)
@@ -1163,16 +1163,9 @@ static int ext2_sync_fs(struct super_block *sb, int wait)
        struct ext2_super_block *es = EXT2_SB(sb)->s_es;
 
        lock_kernel();
-       ext2_clear_super_error(sb);
-
        if (es->s_state & cpu_to_le16(EXT2_VALID_FS)) {
                ext2_debug("setting valid to 0\n");
                es->s_state &= cpu_to_le16(~EXT2_VALID_FS);
-               es->s_free_blocks_count =
-                       cpu_to_le32(ext2_count_free_blocks(sb));
-               es->s_free_inodes_count =
-                       cpu_to_le32(ext2_count_free_inodes(sb));
-               es->s_wtime = cpu_to_le32(get_seconds());
                ext2_sync_super(sb, es);
        } else {
                ext2_commit_super(sb, es);