diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-01-28 11:48:52 -0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-02-22 16:07:23 -0800 |
commit | fa3d2bdf94879c3645b3688e88ca03deb3bb495a (patch) | |
tree | d057b0016198dd43da4c54c99c9a7089a78d4074 /fs/f2fs/node.c | |
parent | 479c8bc40c51535bf496440aa1d6af26e4ff9362 (diff) | |
download | linux-fa3d2bdf94879c3645b3688e88ca03deb3bb495a.tar.gz linux-fa3d2bdf94879c3645b3688e88ca03deb3bb495a.tar.bz2 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.c | 5 |
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); |