]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
f2fs: avoid stale fi->gdirty_list pointer
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 13 Oct 2017 02:12:53 +0000 (19:12 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 26 Oct 2017 08:44:14 +0000 (10:44 +0200)
When doing fault injection test, f2fs_evict_inode() didn't remove gdirty_list
which incurs a kernel panic due to wrong pointer access.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/inode.c

index ad4f7d52c0ad3540faa35709411a345279bbc1e1..3617e7fca9301f862517c502468bc277071fa737 100644 (file)
@@ -520,8 +520,10 @@ no_delete:
        stat_dec_inline_dir(inode);
        stat_dec_inline_inode(inode);
 
-       if (!is_set_ckpt_flags(sbi, CP_ERROR_FLAG))
+       if (likely(!is_set_ckpt_flags(sbi, CP_ERROR_FLAG)))
                f2fs_bug_on(sbi, is_inode_flag_set(inode, FI_DIRTY_INODE));
+       else
+               f2fs_inode_synced(inode);
 
        /* ino == 0, if f2fs_new_inode() was failed t*/
        if (inode->i_ino)