From 9f1c0bfd10d619a3755c3b22b1dd95a593720ce9 Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Fri, 16 Apr 2021 10:04:17 +0800 Subject: [PATCH 1/1] LU-14616 readahead: export pages directly without RA With Readahead disabled, @vpg_defer_uptodate should not be set as we don't reserve credits for such read. In vvp_page_completion_read() we will call ll_ra_count_put() which makes @ra_cur_pages negative. Fixes: 7e8efb339b ("LU-12043 llite: fix to submit complete read block with ra disabled") Change-Id: I1c9134f5972aa0d0e7aac998f02c690cc55b433b Signed-off-by: Wang Shilong Reviewed-on: https://review.whamcloud.com/43338 Reviewed-by: Andreas Dilger Tested-by: jenkins Reviewed-by: Bobi Jam Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/llite/rw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index a7f83ce..126c583 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -235,8 +235,10 @@ static int ll_read_ahead_page(const struct lu_env *env, struct cl_io *io, cl_page_assume(env, io, page); vpg = cl2vvp_page(cl_object_page_slice(clob, page)); if (!vpg->vpg_defer_uptodate && !PageUptodate(vmpage)) { - vpg->vpg_defer_uptodate = 1; - vpg->vpg_ra_used = 0; + if (hint == MAYNEED) { + vpg->vpg_defer_uptodate = 1; + vpg->vpg_ra_used = 0; + } cl_page_list_add(queue, page); } else { /* skip completed pages */ -- 1.8.3.1