f2fs: do not skip updating inode when retrying to flush node page
authorJaegeuk Kim <jaegeuk@kernel.org>
Sat, 11 Jun 2022 17:55:43 +0000 (10:55 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 28 Jun 2022 16:27:09 +0000 (09:27 -0700)
Let's try to flush dirty inode again to improve subtle i_blocks mismatch.

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/node.c

index cf6f7fc83c08290f6cd53fd395fdabbf66b6fd49..095a634436e3862111928e9195ad37b606aa8d29 100644 (file)
@@ -1945,7 +1945,6 @@ next_step:
                for (i = 0; i < nr_pages; i++) {
                        struct page *page = pvec.pages[i];
                        bool submitted = false;
-                       bool may_dirty = true;
 
                        /* give a priority to WB_SYNC threads */
                        if (atomic_read(&sbi->wb_sync_req[NODE]) &&
@@ -1998,11 +1997,8 @@ continue_unlock:
                        }
 
                        /* flush dirty inode */
-                       if (IS_INODE(page) && may_dirty) {
-                               may_dirty = false;
-                               if (flush_dirty_inode(page))
-                                       goto lock_node;
-                       }
+                       if (IS_INODE(page) && flush_dirty_inode(page))
+                               goto lock_node;
 write_node:
                        f2fs_wait_on_page_writeback(page, NODE, true, true);