diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 4e2f10bd2b07..5b4832956196 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -2566,19 +2566,15 @@ static int f2fs_read_data_large_folio(struct inode *inode, } trace_f2fs_read_folio(folio, DATA); if (rac) { - if (!folio_in_bio) { - folio_mark_uptodate(folio); - folio_unlock(folio); - } + if (!folio_in_bio) + folio_end_read(folio, true); folio = readahead_folio(rac); goto next_folio; } err_out: /* Nothing was submitted. */ if (!bio) { - if (!ret) - folio_mark_uptodate(folio); - folio_unlock(folio); + folio_end_read(folio, !ret); return ret; }