diff mbox

EXT4: Avoid double dirtying of super block in ext4_put_super()

Message ID 20081006212118.GA382@basil.nowhere.org
State Accepted, archived
Headers show

Commit Message

Andi Kleen Oct. 6, 2008, 9:21 p.m. UTC
EXT4: Avoid double dirtying of super block in ext4_put_super()

While reading code I noticed that ext4_put_super() dirties the 
superblock bh twice. It is always done in ext4_commit_super()
too. Remove the redundant dirty operation.

Should be a nop semantically.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Theodore Ts'o Oct. 6, 2008, 11:39 p.m. UTC | #1
On Mon, Oct 06, 2008 at 11:21:18PM +0200, Andi Kleen wrote:
> EXT4: Avoid double dirtying of super block in ext4_put_super()
> 
> While reading code I noticed that ext4_put_super() dirties the 
> superblock bh twice. It is always done in ext4_commit_super()
> too. Remove the redundant dirty operation.
> 
> Should be a nop semantically.
> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>

As it turns out, I had taken out the mark_buffer_dirty as superfluous
in the following patch:

    ext4/jbd2: Avoid WARN() messages when failing to write to the superblock

(This was Arjan's favorite ext3/ext4 top-ten kerneloops.org bug).

However I didn't kill the BUFFER_TRACE(sbi->s_sbh, "marking dirty");
line, which should have been deleted too.  I'll take out the change
from my patch since it's really unrelated to fixing the kerneloops.org
WARN'ing, and take your patch and it include it for submission to
Linus in the ext3 tree.

Thanks,

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff -up linux-2.6.27-rc6-csum/fs/ext4/super.c-o linux-2.6.27-rc6-csum/fs/ext4/super.c
--- linux-2.6.27-rc6-csum/fs/ext4/super.c-o	2008-08-29 10:10:08.000000000 +0200
+++ linux-2.6.27-rc6-csum/fs/ext4/super.c	2008-10-06 11:24:31.000000000 +0200
@@ -508,8 +509,6 @@ 
 	if (!(sb->s_flags & MS_RDONLY)) {
 		EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
 		es->s_state = cpu_to_le16(sbi->s_mount_state);
-		BUFFER_TRACE(sbi->s_sbh, "marking dirty");
-		mark_buffer_dirty(sbi->s_sbh);
 		ext4_commit_super(sb, es, 1);
 	}