]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
f2fs: don't get FREEZE lock in f2fs_evict_inode in frozen fs
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 4 Mar 2022 17:40:05 +0000 (09:40 -0800)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 27 Apr 2022 09:58:26 +0000 (11:58 +0200)
commit5bff7818f2faa3c10f7c97d003b279fe1bb86611
tree1ecfc0501ce39e8e58ecdef7b168e6cefea646ee
parentb83955a31b0c8c14282715e95808cf1858047277
f2fs: don't get FREEZE lock in f2fs_evict_inode in frozen fs

BugLink: https://bugs.launchpad.net/bugs/1969110
[ Upstream commit ba900534f807f0b327c92d5141c85d2313e2d55c ]

Let's purge inode cache in order to avoid the below deadlock.

[freeze test]                         shrinkder
freeze_super
 - pwercpu_down_write(SB_FREEZE_FS)
                                       - super_cache_scan
                                         - down_read(&sb->s_umount)
                                           - prune_icache_sb
                                            - dispose_list
                                             - evict
                                              - f2fs_evict_inode
thaw_super
 - down_write(&sb->s_umount);
                                              - __percpu_down_read(SB_FREEZE_FS)

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 58d3aa672d1386d4ccd2c11d6f1a09675c30f57a)
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
Documentation/ABI/testing/sysfs-fs-f2fs
fs/f2fs/debug.c
fs/f2fs/f2fs.h
fs/f2fs/inode.c
fs/f2fs/super.c