This patch add a judgement before read, if the page has been uptodate, move the block directly.
Signed-off-by: Yunlei He <[email protected]> --- fs/f2fs/gc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 88bfc3d..40776b4 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -602,6 +602,9 @@ static void move_encrypted_block(struct inode *inode, block_t bidx, goto recover_block; } + if (PageUptodate(fio.encrypted_page)) + goto skip_read; + err = f2fs_submit_page_bio(&fio); if (err) goto put_page_out; @@ -613,11 +616,13 @@ static void move_encrypted_block(struct inode *inode, block_t bidx, err = -EIO; goto put_page_out; } + if (unlikely(!PageUptodate(fio.encrypted_page))) { err = -EIO; goto put_page_out; } +skip_read: set_page_dirty(fio.encrypted_page); f2fs_wait_on_page_writeback(fio.encrypted_page, DATA, true); if (clear_page_dirty_for_io(fio.encrypted_page)) -- 2.10.1 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
