From: Mr NeilBrown Date: Sat, 18 Jan 2020 13:51:51 +0000 (-0500) Subject: LU-13004 target: use KIOV for out_handle X-Git-Tag: 2.13.53~238 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=86fda8611930a6f9ed73cc5e7813c4809a96ab6d LU-13004 target: use KIOV for out_handle Convert out_handle() use use a BULK_BUF_KIOV rather than a BULK_BUF_KVEC. This is a step towards removed KVEC support and standardizing on KIOV. Signed-off-by: Mr NeilBrown Change-Id: I3f5b1b06183a716ba57d6f7f2a28bf5aa0f76dfe Reviewed-on: https://review.whamcloud.com/36826 Tested-by: jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Shaun Tancheff Reviewed-by: Sebastien Buisson Reviewed-by: Mike Pershin Reviewed-by: Oleg Drokin --- diff --git a/lustre/target/out_handler.c b/lustre/target/out_handler.c index b18937e..6f5dd68 100644 --- a/lustre/target/out_handler.c +++ b/lustre/target/out_handler.c @@ -1004,17 +1004,23 @@ int out_handle(struct tgt_session_info *tsi) update_bufs[0] = ouh->ouh_inline_data; } else { struct out_update_buffer *tmp; + int page_count = 0; oub = req_capsule_client_get(pill, &RMF_OUT_UPDATE_BUF); if (oub == NULL) GOTO(out_free, rc = err_serious(-EPROTO)); - desc = ptlrpc_prep_bulk_exp(pill->rc_req, update_buf_count, + for (i = 0; i < update_buf_count; i++) + /* First *and* last might be partial pages, hence +1 */ + page_count += DIV_ROUND_UP(oub[i].oub_size, + PAGE_SIZE) + 1; + + desc = ptlrpc_prep_bulk_exp(pill->rc_req, page_count, PTLRPC_BULK_OPS_COUNT, PTLRPC_BULK_GET_SINK | - PTLRPC_BULK_BUF_KVEC, + PTLRPC_BULK_BUF_KIOV, MDS_BULK_PORTAL, - &ptlrpc_bulk_kvec_ops); + &ptlrpc_bulk_kiov_nopin_ops); if (desc == NULL) GOTO(out_free, rc = err_serious(-ENOMEM));