linux/fs/ext4
Vegard Nossum c65d5c6c81 ext4: short-cut orphan cleanup on error
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: c9eb13a910 ("ext4: fix hang when processing corrupted orphaned inode list")
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org
2016-07-14 23:21:35 -04:00
..
acl.c posix_acl: Inode acl caching fixes 2016-03-31 00:30:15 -04:00
acl.h ext2/3/4: use generic posix ACL infrastructure 2014-01-25 23:58:19 -05:00
balloc.c ext4: validate s_reserved_gdt_blocks on mount 2016-07-05 20:01:52 -04:00
bitmap.c ext4: remove unused header files 2015-04-02 23:47:42 -04:00
block_validity.c ext4: call out CRC and corruption errors with specific error codes 2015-10-17 16:16:04 -04:00
dir.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
ext4_extents.h ext4: fix misspellings in comments. 2016-03-09 23:49:05 -05:00
ext4_jbd2.c ext4: fix potential use after free in __ext4_journal_stop 2015-10-17 22:57:06 -04:00
ext4_jbd2.h ext4: optimize ext4_should_retry_alloc() to improve ENOSPC performance 2016-06-26 18:24:01 -04:00
ext4.h ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
extents_status.c ext4: remove trailing \n from ext4_warning/ext4_error calls 2016-04-27 01:11:21 -04:00
extents_status.h ext4: move procfs registration code to fs/ext4/sysfs.c 2015-09-23 12:46:17 -04:00
extents.c ext4: check for extents that wrap around 2016-06-30 11:53:46 -04:00
file.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
fsync.c ext4: respect the nobarrier mount option in nojournal mode 2016-06-26 18:25:01 -04:00
hash.c ext4: remove unused header files 2015-04-02 23:47:42 -04:00
ialloc.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
indirect.c ext4: refactor direct IO code 2016-05-13 00:44:16 -04:00
inline.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
inode.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
ioctl.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
Kconfig ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
Makefile ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
mballoc.c ext4: fix reference counting bug on block allocation error 2016-07-14 23:02:47 -04:00
mballoc.h ext4: fix compile error while opening the macro DOUBLE_CHECK 2016-03-13 17:18:12 -04:00
migrate.c ext4: fix misspellings in comments. 2016-03-09 23:49:05 -05:00
mmp.c ext4: remove trailing \n from ext4_warning/ext4_error calls 2016-04-27 01:11:21 -04:00
move_extent.c ext4: do not ask jbd2 to write data for delalloc buffers 2016-04-24 00:56:08 -04:00
namei.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
page-io.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
readpage.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
resize.c ext4: remove trailing \n from ext4_warning/ext4_error calls 2016-04-27 01:11:21 -04:00
super.c ext4: short-cut orphan cleanup on error 2016-07-14 23:21:35 -04:00
symlink.c ext4 crypto: migrate into vfs's crypto engine 2016-07-10 14:01:03 -04:00
sysfs.c ext4: add "static" to ext4_seq_##name##_fops struct 2015-11-26 15:52:24 -05:00
truncate.h ext4: fix races between page faults and hole punching 2015-12-07 14:28:03 -05:00
xattr_security.c switch xattr_handler->set() to passing dentry and inode separately 2016-05-27 15:39:43 -04:00
xattr_trusted.c switch xattr_handler->set() to passing dentry and inode separately 2016-05-27 15:39:43 -04:00
xattr_user.c switch xattr_handler->set() to passing dentry and inode separately 2016-05-27 15:39:43 -04:00
xattr.c ext4: avoid modifying checksum fields directly during checksum verification 2016-07-03 17:51:39 -04:00
xattr.h mbcache2: rename to mbcache 2016-02-22 22:35:22 -05:00