ext4: Fix and simplify s_dirt handling
authorTheodore Ts'o <tytso@mit.edu>
Fri, 1 May 2009 01:24:04 +0000 (21:24 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 1 May 2009 01:24:04 +0000 (21:24 -0400)
commit7234ab2a55e77784b44cf2d862136d9e41b8d98a
treecad3f1ee096243529125b3d6a028cc1426773b9c
parente2d670523c6c4ccb0fca9f3ab1b8f066d9aa57d6
ext4: Fix and simplify s_dirt handling

The s_dirt flag wasn't completely handled correctly, but it didn't
really matter when journalling was enabled.  It turns out that when
ext4 runs without a journal, we don't clear s_dirt in places where we
should have, with the result that the high-level write_super()
function was writing the superblock when it wasn't necessary.

So we fix this by making ext4_commit_super() clear the s_dirt flag,
and removing many of the other places where s_dirt is manipulated.
When journalling is enabled, the s_dirt flag might be left set more
often, but s_dirt really doesn't matter when journalling is enabled.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/super.c