• Theodore Ts'o's avatar
    ext4: make sure the journal sb is written in ext4_clear_journal_err() · d796c52e
    Theodore Ts'o authored
    After we transfer set the EXT4_ERROR_FS bit in the file system
    superblock, it's not enough to call jbd2_journal_clear_err() to clear
    the error indication from journal superblock --- we need to call
    jbd2_journal_update_sb_errno() as well.  Otherwise, when the root file
    system is mounted read-only, the journal is replayed, and the error
    indicator is transferred to the superblock --- but the s_errno field
    in the jbd2 superblock is left set (since although we cleared it in
    memory, we never flushed it out to disk).
    
    This can end up confusing e2fsck.  We should make e2fsck more robust
    in this case, but the kernel shouldn't be leaving things in this
    confused state, either.
    Signed-off-by: Theodore Ts'o's avatar"Theodore Ts'o" <tytso@mit.edu>
    Cc: stable@kernel.org
    
    d796c52e
jbd2.h 40.9 KB