From: Yonggil Song Date: Thu, 16 Feb 2023 07:13:50 +0000 (+0900) Subject: f2fs: fix uninitialized skipped_gc_rwsem X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c17caf0ba3aa3411b96c71b4ce24be1040b8f3e8;p=linux.git f2fs: fix uninitialized skipped_gc_rwsem When f2fs skipped a gc round during victim migration, there was a bug which would skip all upcoming gc rounds unconditionally because skipped_gc_rwsem was not initialized. It fixes the bug by correctly initializing the skipped_gc_rwsem inside the gc loop. Fixes: 6f8d4455060d ("f2fs: avoid fi->i_gc_rwsem[WRITE] lock in f2fs_gc") Signed-off-by: Yonggil Song Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 0a9dfa4598606..292a17d62f569 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -1791,8 +1791,8 @@ int f2fs_gc(struct f2fs_sb_info *sbi, struct f2fs_gc_control *gc_control) prefree_segments(sbi)); cpc.reason = __get_cp_reason(sbi); - sbi->skipped_gc_rwsem = 0; gc_more: + sbi->skipped_gc_rwsem = 0; if (unlikely(!(sbi->sb->s_flags & SB_ACTIVE))) { ret = -EINVAL; goto stop;