diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index e4081fc91012e53731d230f56c0364acf161a2c4..2692848e7f75cb4c34b045821ed1d937d7f65bd7 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1383,13 +1383,13 @@ static int f2fs_write_begin(struct file *file, struct address_space *mapping, 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;