From: Mr NeilBrown Date: Tue, 28 Jan 2020 13:43:49 +0000 (-0500) Subject: LU-13004 osp: use KIOV in osp_prep_update_req X-Git-Tag: 2.13.53~237 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=f32fbf189fab57202810a9a47343a14c6c3ead95 LU-13004 osp: use KIOV in osp_prep_update_req Convert osp_prep_update_req to use a BULK_BUF_KIOV rather than a BULK_BUF_KVEC descriptor. This is a step towards remove KIOV support. Signed-off-by: Mr NeilBrown Change-Id: I2fdf84d73ba2d34c678b6eb6a8bbd323a761dfe4 Reviewed-on: https://review.whamcloud.com/36828 Reviewed-by: James Simmons Reviewed-by: Mike Pershin Tested-by: jenkins Tested-by: Maloo Reviewed-by: Sebastien Buisson Reviewed-by: Oleg Drokin --- diff --git a/lustre/osp/osp_trans.c b/lustre/osp/osp_trans.c index f366951..9686863 100644 --- a/lustre/osp/osp_trans.c +++ b/lustre/osp/osp_trans.c @@ -347,6 +347,7 @@ int osp_prep_update_req(const struct lu_env *env, struct obd_import *imp, struct out_update_header *ouh; struct out_update_buffer *oub; __u32 buf_count = 0; + int page_count = 0; int repsize = 0; struct object_update_reply *reply; int rc, i; @@ -418,13 +419,14 @@ int osp_prep_update_req(const struct lu_env *env, struct obd_import *imp, list_for_each_entry(ours, &our->our_req_list, ours_list) { oub->oub_size = ours->ours_req_size; oub++; + page_count += round_up(ours->ours_req_size, PAGE_SIZE) + 1; } req->rq_bulk_write = 1; - desc = ptlrpc_prep_bulk_imp(req, buf_count, + desc = ptlrpc_prep_bulk_imp(req, page_count, MD_MAX_BRW_SIZE >> LNET_MTU_BITS, - PTLRPC_BULK_GET_SOURCE | PTLRPC_BULK_BUF_KVEC, - MDS_BULK_PORTAL, &ptlrpc_bulk_kvec_ops); + PTLRPC_BULK_GET_SOURCE | PTLRPC_BULK_BUF_KIOV, + MDS_BULK_PORTAL, &ptlrpc_bulk_kiov_nopin_ops); if (desc == NULL) GOTO(out_req, rc = -ENOMEM);