summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorJaegeuk Kim2016-01-28 20:48:52 +0100
committerJaegeuk Kim2016-02-23 01:07:23 +0100
commitfa3d2bdf94879c3645b3688e88ca03deb3bb495a (patch)
treed057b0016198dd43da4c54c99c9a7089a78d4074 /fs/f2fs/node.c
parentf2fs: fix endianness of on-disk summary_footer (diff)
downloadkernel-qcow2-linux-fa3d2bdf94879c3645b3688e88ca03deb3bb495a.tar.gz
kernel-qcow2-linux-fa3d2bdf94879c3645b3688e88ca03deb3bb495a.tar.xz
kernel-qcow2-linux-fa3d2bdf94879c3645b3688e88ca03deb3bb495a.zip
f2fs: wait on page's writeback in writepages path
Likewise f2fs_write_cache_pages, let's do for node and meta pages too. Especially, for node blocks, we should do this before marking its fsync and dentry flags. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r--fs/f2fs/node.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index eae8977a7277..511c0e7c3ae1 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1297,6 +1297,9 @@ continue_unlock:
continue;
}
+ f2fs_wait_on_page_writeback(page, NODE, true);
+
+ BUG_ON(PageWriteback(page));
if (!clear_page_dirty_for_io(page))
goto continue_unlock;
@@ -1402,8 +1405,6 @@ static int f2fs_write_node_page(struct page *page,
if (unlikely(f2fs_cp_error(sbi)))
goto redirty_out;
- f2fs_wait_on_page_writeback(page, NODE, true);
-
/* get old block addr of this node page */
nid = nid_of_node(page);
f2fs_bug_on(sbi, page->index != nid);