f2fs: detect synchronous writeback more earlier
authorChao Yu <yuchao0@huawei.com>
Wed, 23 May 2018 14:25:09 +0000 (22:25 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 31 May 2018 18:31:50 +0000 (11:31 -0700)
This patch changes to detect synchronous writeback more earlier before,
in order to avoid unnecessary page writeback before exiting asynchronous
writeback.

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

index 19c3c2180cca01e83adce524c91c33c3a8f3cc44..abb45f5653f96ac6976dc9b8787c71f1eb82f022 100644 (file)
@@ -1981,6 +1981,13 @@ retry:
                        struct page *page = pvec.pages[i];
                        bool submitted = false;
 
+                       /* give a priority to WB_SYNC threads */
+                       if (atomic_read(&F2FS_M_SB(mapping)->wb_sync_req) &&
+                                       wbc->sync_mode == WB_SYNC_NONE) {
+                               done = 1;
+                               break;
+                       }
+
                        done_index = page->index;
 retry_write:
                        lock_page(page);
@@ -2035,9 +2042,7 @@ continue_unlock:
                                last_idx = page->index;
                        }
 
-                       /* give a priority to WB_SYNC threads */
-                       if ((atomic_read(&F2FS_M_SB(mapping)->wb_sync_req) ||
-                                       --wbc->nr_to_write <= 0) &&
+                       if (--wbc->nr_to_write <= 0 &&
                                        wbc->sync_mode == WB_SYNC_NONE) {
                                done = 1;
                                break;