• Theodore Ts'o's avatar
    ext4: don't perform block validity checks on the journal inode · 0a944e8a
    Theodore Ts'o authored
    Since the journal inode is already checked when we added it to the
    block validity's system zone, if we check it again, we'll just trigger
    a failure.
    
    This was causing failures like this:
    
    [   53.897001] EXT4-fs error (device sda): ext4_find_extent:909: inode
    #8: comm jbd2/sda-8: pblk 121667583 bad header/extent: invalid extent entries - magic f30a, entries 8, max 340(340), depth 0(0)
    [   53.931430] jbd2_journal_bmap: journal block not found at offset 49 on sda-8
    [   53.938480] Aborting journal on device sda-8.
    
    ... but only if the system was under enough memory pressure that
    logical->physical mapping for the journal inode gets pushed out of the
    extent cache.  (This is why it wasn't noticed earlier.)
    
    Fixes: 345c0dbf ("ext4: protect journal inode's blocks using block_validity")
    Reported-by: default avatarDan Rue <dan.rue@linaro.org>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    Tested-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
    0a944e8a
extents.c 162 KB