[lustre-devel] [PATCH 394/622] lustre: llite: make sure readahead cover current read

James Simmons jsimmons at infradead.org
Thu Feb 27 13:14:22 PST 2020


From: Wang Shilong <wshilong at ddn.com>

When doing readahead, @ria_end_min is used to indicate
how far we are expected to read to cover current
read.

update @ria_end_min unconditionally with IO end.
also @ria_end_min is closed interval which should be
calculated as start + count - 1;

WC-bug-id: https://jira.whamcloud.com/browse/LU-12043
Lustre-commit: 8fbef5ee7619 ("LU-12043 llite: make sure readahead cover current read")
Signed-off-by: Wang Shilong <wshilong at ddn.com>
Reviewed-on: https://review.whamcloud.com/35215
Reviewed-by: Patrick Farrell <pfarrell at whamcloud.com>
Reviewed-by: Li Xi <lixi at ddn.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
 fs/lustre/llite/rw.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/fs/lustre/llite/rw.c b/fs/lustre/llite/rw.c
index bec26c4..fe9a2b0 100644
--- a/fs/lustre/llite/rw.c
+++ b/fs/lustre/llite/rw.c
@@ -689,16 +689,8 @@ static int ll_readahead(const struct lu_env *env, struct cl_io *io,
 
 	/* at least to extend the readahead window to cover current read */
 	if (!hit && vio->vui_ra_valid &&
-	    vio->vui_ra_start + vio->vui_ra_count > ria->ria_start) {
-		unsigned long remainder;
-
-		/* to the end of current read window. */
-		mlen = vio->vui_ra_start + vio->vui_ra_count - ria->ria_start;
-		/* trim to RPC boundary */
-		ras_align(ras, ria->ria_start, &remainder);
-		mlen = min(mlen, ras->ras_rpc_size - remainder);
-		ria->ria_end_min = ria->ria_start + mlen;
-	}
+	    vio->vui_ra_start + vio->vui_ra_count > ria->ria_start)
+		ria->ria_end_min = vio->vui_ra_start + vio->vui_ra_count - 1;
 
 	ria->ria_reserved = ll_ra_count_get(ll_i2sbi(inode), ria, len, mlen);
 	if (ria->ria_reserved < len)
-- 
1.8.3.1



More information about the lustre-devel mailing list