f2fs: remove stale inode entry before eviction from gdirty_list
This is seen when CP_ERROR_FLAG is not set & F2FS may be corrupted.
There is a case observed where dirty stale inode pointer data is still
present in the gdirty_list causing panic on access while doing
checkpoint operation.
WARNING: CPU: 3 PID: 1827 at
kernel/msm-4.14/fs/f2fs/inode.c:567
f2fs_evict_inode+0x364/0x37c
<...>
[42246.776289] BUG: spinlock bad magic on CPU#4, 1245
[42246.782674] Unable to handle kernel paging request at virtual address 6b6b6b6b6b713b
<...>
[42246.896370] task: ffffffc0f0434080 task.stack: ffffff8023ea0000
[42246.902465] pc : spin_bug+0x80/0xb8
[42246.906055] lr : spin_bug+0x64/0xb8
<...>
[42247.122346] Call trace:
[42247.124876] spin_bug+0x80/0xb8
[42247.128110] do_raw_spin_lock+0xe8/0x118
[42247.132144] _raw_spin_lock+0x24/0x30
[42247.135916] igrab+0x20/0x6c
[42247.138894] f2fs_sync_inode_meta+0x58/0xc0
[42247.143199] write_checkpoint+0x1c4/0xecc
[42247.147322] f2fs_sync_fs+0x118/0x170
[42247.151096] f2fs_do_sync_file+0x4f0/0x798
[42247.155311] f2fs_sync_file+0x54/0x6c
[42247.159087] vfs_fsync_range+0x90/0xac
[42247.162950] vfs_fsync+0x2c/0x38
[42247.166278] do_fsync+0x3c/0x78
[42247.169515] SyS_fdatasync+0x20/0x30
Change-Id: Iccbb308eb24ed46d0d0ac5d169f80e00b80dfda4
Signed-off-by:
Ritesh Harjani <riteshh@codeaurora.org>
Loading
Please register or sign in to comment