• Vegard Nossum's avatar
    ext4: short-cut orphan cleanup on error · 7564e4b9
    Vegard Nossum authored
    commit c65d5c6c upstream.
    
    If we encounter a filesystem error during orphan cleanup, we should stop.
    Otherwise, we may end up in an infinite loop where the same inode is
    processed again and again.
    
        EXT4-fs (loop0): warning: checktime reached, running e2fsck is recommended
        EXT4-fs error (device loop0): ext4_mb_generate_buddy:758: group 2, block bitmap and bg descriptor inconsistent: 6117 vs 0 free clusters
        Aborting journal on device loop0-8.
        EXT4-fs (loop0): Remounting filesystem read-only
        EXT4-fs error (device loop0) in ext4_free_blocks:4895: Journal has aborted
        EXT4-fs error (device loop0) in ext4_do_update_inode:4893: Journal has aborted
        EXT4-fs error (device loop0) in ext4_do_update_inode:4893: Journal has aborted
        EXT4-fs error (device loop0) in ext4_ext_remove_space:3068: IO failure
        EXT4-fs error (device loop0) in ext4_ext_truncate:4667: Journal has aborted
        EXT4-fs error (device loop0) in ext4_orphan_del:2927: Journal has aborted
        EXT4-fs error (device loop0) in ext4_do_update_inode:4893: Journal has aborted
        EXT4-fs (loop0): Inode 16 (00000000618192a0): orphan list check failed!
        [...]
        EXT4-fs (loop0): Inode 16 (0000000061819748): orphan list check failed!
        [...]
        EXT4-fs (loop0): Inode 16 (0000000061819bf0): orphan list check failed!
        [...]
    
    See-also: c9eb13a9 ("ext4: fix hang when processing corrupted orphaned inode list")
    Cc: Jan Kara <jack@suse.cz>
    Signed-off-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    7564e4b9
super.c 158 KB