• T
    ext4: don't perform block validity checks on the journal inode · 97fbf573
    Theodore Ts'o 提交于
    [ Upstream commit 0a944e8a6c66ca04c7afbaa17e22bf208a8b37f0 ]
    
    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: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
    Reported-by: NDan Rue <dan.rue@linaro.org>
    Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
    Tested-by: NNaresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    97fbf573
extents.c 163.4 KB