BACKPORT: f2fs: do not skip updating inode when retrying to flush node page

Let's try to flush dirty inode again to improve subtle i_blocks mismatch.

Bug: 228919347
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit cfa6149d4738ad06b30f0ff6285869c8d945ac6f)
Change-Id: Icb2d0643ae64c0b6963acb975a3e39ede2e9dcb6
This commit is contained in:
Jaegeuk Kim
2022-06-11 10:55:43 -07:00
committed by Todd Kjos
parent db198f61d0
commit b57cdff123

View File

@@ -1949,7 +1949,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]) &&
@@ -2002,11 +2001,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);