f2fs: fix wrong continue condition in GC
authorJaegeuk Kim <jaegeuk@kernel.org>
Sat, 13 Aug 2022 05:49:50 +0000 (22:49 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 30 Aug 2022 04:15:51 +0000 (21:15 -0700)
We should decrease the frozen counter.

Cc: stable@vger.kernel.org
Fixes: 325163e9892b ("f2fs: add gc_urgent_high_remaining sysfs node")
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/gc.c

index 6da21d4..45f90e3 100644 (file)
@@ -97,14 +97,10 @@ static int gc_thread_func(void *data)
                 */
                if (sbi->gc_mode == GC_URGENT_HIGH) {
                        spin_lock(&sbi->gc_urgent_high_lock);
-                       if (sbi->gc_urgent_high_limited) {
-                               if (!sbi->gc_urgent_high_remaining) {
-                                       sbi->gc_urgent_high_limited = false;
-                                       spin_unlock(&sbi->gc_urgent_high_lock);
-                                       sbi->gc_mode = GC_NORMAL;
-                                       continue;
-                               }
-                               sbi->gc_urgent_high_remaining--;
+                       if (sbi->gc_urgent_high_limited &&
+                                       !sbi->gc_urgent_high_remaining--) {
+                               sbi->gc_urgent_high_limited = false;
+                               sbi->gc_mode = GC_NORMAL;
                        }
                        spin_unlock(&sbi->gc_urgent_high_lock);
                }