f2fs: change the timing of f2fs_wait_on_page_writeback
authorFan Li <fanofcode.li@samsung.com>
Tue, 4 Aug 2015 05:27:51 +0000 (13:27 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 5 Aug 2015 15:08:16 +0000 (08:08 -0700)
some backing devices need pages to be stable during writeback. It doesn't
matter if
the page is completely overwritten or already uptodate, it needs to wait
before write.

Signed-off-by: Fan li <fanofcode.li@samsung.com>
Reviewed-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index e4081fc91012e53731d230f56c0364acf161a2c4..2692848e7f75cb4c34b045821ed1d937d7f65bd7 100644 (file)
@@ -1383,13 +1383,13 @@ put_next:
        f2fs_put_dnode(&dn);
        f2fs_unlock_op(sbi);
 
+       f2fs_wait_on_page_writeback(page, DATA);
+
        if (len == PAGE_CACHE_SIZE)
                goto out_update;
        if (PageUptodate(page))
                goto out_clear;
 
-       f2fs_wait_on_page_writeback(page, DATA);
-
        if ((pos & PAGE_CACHE_MASK) >= i_size_read(inode)) {
                unsigned start = pos & (PAGE_CACHE_SIZE - 1);
                unsigned end = start + len;