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

Reply via email to