X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fllite%2Frw.c;h=743e2c10564d7184e7d7a8e683b92a765458b826;hp=9202524bf1be64f64906cb6bd73b97b68c009516;hb=1058867c004bf19774218945631a691e8210b502;hpb=b4391fcdaf392a50bd1419342eca3b730c077ed2 diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index 9202524..743e2c1 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -777,6 +777,14 @@ static int ll_readahead(const struct lu_env *env, struct cl_io *io, vio->vui_ra_start_idx + vio->vui_ra_pages - 1; pages_min = vio->vui_ra_start_idx + vio->vui_ra_pages - ria->ria_start_idx; + /** + * For performance reason, exceeding @ra_max_pages + * are allowed, but this should be limited with RPC + * size in case a large block size read issued. Trim + * to RPC boundary. + */ + pages_min = min(pages_min, ras->ras_rpc_pages - + (ria->ria_start_idx % ras->ras_rpc_pages)); } /* don't over reserved for mmap range read */