diff options
| author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-01-20 23:43:51 +0800 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-04-13 12:32:53 +0200 |
| commit | 4dc5fb102095e52dd0179564b86146eb94dff28c (patch) | |
| tree | 327c686eb131b24a1286bb597b0bcae662c48bc4 /fs/f2fs/data.c | |
| parent | 3f40110533e77633d8a7dc8cda01f373aa634b0c (diff) | |
| download | android_kernel_m2note-4dc5fb102095e52dd0179564b86146eb94dff28c.tar.gz | |
f2fs: use wait_for_stable_page to avoid contention
In write_begin, if storage supports stable_page, we don't need to wait for
writeback to update its contents.
This patch introduces to use wait_for_stable_page instead of
wait_on_page_writeback.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/data.c')
| -rw-r--r-- | fs/f2fs/data.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index cf606f71e..cf6d098c7 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -256,7 +256,7 @@ void set_data_blkaddr(struct dnode_of_data *dn) struct page *node_page = dn->node_page; unsigned int ofs_in_node = dn->ofs_in_node; - f2fs_wait_on_page_writeback(node_page, NODE); + f2fs_wait_on_page_writeback(node_page, NODE, true); rn = F2FS_NODE(node_page); @@ -1320,7 +1320,8 @@ continue_unlock: if (PageWriteback(page)) { if (wbc->sync_mode != WB_SYNC_NONE) - f2fs_wait_on_page_writeback(page, DATA); + f2fs_wait_on_page_writeback(page, + DATA, true); else goto continue_unlock; } @@ -1548,7 +1549,7 @@ repeat: } } - f2fs_wait_on_page_writeback(page, DATA); + f2fs_wait_on_page_writeback(page, DATA, false); /* wait for GCed encrypted page writeback */ if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) |
