• Hidehiro Kawai's avatar
    jbd: don't dirty original metadata buffer on abort · 885e353c
    Hidehiro Kawai authored
    Currently, original metadata buffers are dirtied when they are unfiled
    whether the journal has aborted or not.  Eventually these buffers will be
    written-back to the filesystem by pdflush.  This means some metadata
    buffers are written to the filesystem without journaling if the journal
    aborts.  So if both journal abort and system crash happen at the same
    time, the filesystem would become inconsistent state.  Additionally,
    replaying journaled metadata can overwrite the latest metadata on the
    filesystem partly.  Because, if the journal aborts, journaled metadata are
    preserved and replayed during the next mount not to lose uncheckpointed
    metadata.  This would also break the consistency of the filesystem.
    
    This patch prevents original metadata buffers from being dirtied on abort
    by clearing BH_JBDDirty flag from those buffers.  Thus, no metadata
    buffers are written to the filesystem without journaling.
    Signed-off-by: default avatarHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
    Acked-by: default avatarJan Kara <jack@suse.cz>
    Cc: <linux-ext4@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    885e353c
commit.c 27.2 KB