f2fs: handle errors during recover_orphan_inodes
This patch fixes to handle EIO during recover_orphan_inode() given the below
panic.
F2FS-fs : inject IO error in f2fs_read_end_io+0xe6/0x100 [f2fs]
------------[ cut here ]------------
RIP: 0010:[<
ffffffffc0b244e3>] [<
ffffffffc0b244e3>] f2fs_evict_inode+0x433/0x470 [f2fs]
RSP: 0018:
ffff92f8b7fb7c30 EFLAGS:
00010246
RAX:
ffff92fb88a13500 RBX:
ffff92f890566ea0 RCX:
00000000fd3c255c
RDX:
0000000000000001 RSI:
ffff92fb88a13d90 RDI:
ffff92fb8ee127e8
RBP:
ffff92f8b7fb7c58 R08:
0000000000000001 R09:
ffff92fb88a13d58
R10:
000000005a6a9373 R11:
0000000000000001 R12:
00000000fffffffb
R13:
ffff92fb8ee12000 R14:
00000000000034ca R15:
ffff92fb8ee12620
FS:
00007f1fefd8e880(0000) GS:
ffff92fb95600000(0000) knlGS:
0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
CR2:
00007fc211d34cdb CR3:
000000012d43a000 CR4:
00000000001406e0
Stack:
ffff92f890566ea0 ffff92f890567078 ffffffffc0b5a0c0 ffff92f890566f28
ffff92fb888b2000 ffff92f8b7fb7c80 ffffffffbc27ff55 ffff92f890566ea0
ffff92fb8bf10000 ffffffffc0b5a0c0 ffff92f8b7fb7cb0 ffffffffbc28090d
Call Trace:
[<
ffffffffbc27ff55>] evict+0xc5/0x1a0
[<
ffffffffbc28090d>] iput+0x1ad/0x2c0
[<
ffffffffc0b3304c>] recover_orphan_inodes+0x10c/0x2e0 [f2fs]
[<
ffffffffc0b2e0f4>] f2fs_fill_super+0x884/0x1150 [f2fs]
[<
ffffffffbc2644ac>] mount_bdev+0x18c/0x1c0
[<
ffffffffc0b2d870>] ? f2fs_commit_super+0x100/0x100 [f2fs]
[<
ffffffffc0b2a755>] f2fs_mount+0x15/0x20 [f2fs]
[<
ffffffffbc264e49>] mount_fs+0x39/0x170
[<
ffffffffbc28555b>] vfs_kern_mount+0x6b/0x160
[<
ffffffffbc2881df>] do_mount+0x1cf/0xd00
[<
ffffffffbc287f2c>] ? copy_mount_options+0xac/0x170
[<
ffffffffbc289003>] SyS_mount+0x83/0xd0
[<
ffffffffbc8ee880>] entry_SYSCALL_64_fastpath+0x23/0xc1
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>