X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fosp%2Fosp_trans.c;h=9686863b7abfa1ab1c9a60ad4d09c969143dcae0;hp=f3669515271c4669f8d03881a6bf130cd9e12f2e;hb=f32fbf189fab57202810a9a47343a14c6c3ead95;hpb=86fda8611930a6f9ed73cc5e7813c4809a96ab6d 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);