Whamcloud - gitweb
LU-13004 osp: use KIOV in osp_prep_update_req 28/36828/8
authorMr NeilBrown <neilb@suse.de>
Tue, 28 Jan 2020 13:43:49 +0000 (08:43 -0500)
committerOleg Drokin <green@whamcloud.com>
Fri, 14 Feb 2020 05:50:36 +0000 (05:50 +0000)
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 <neilb@suse.de>
Change-Id: I2fdf84d73ba2d34c678b6eb6a8bbd323a761dfe4
Reviewed-on: https://review.whamcloud.com/36828
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/osp/osp_trans.c

index f366951..9686863 100644 (file)
@@ -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;
        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;
        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++;
        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;
        }
 
        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,
                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);
 
        if (desc == NULL)
                GOTO(out_req, rc = -ENOMEM);