X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmgs%2Fmgs_nids.c;h=781250fa06d5573200c6faf7a8c10c6d0ecf7150;hb=0f8b7f951e7f43dbf389a431afea2091388a805e;hp=52251fc3bd0218f42dc306336a5591576e23c8c4;hpb=92c24af6c7c9d0836bf866975bc0a1d641a4a815;p=fs%2Flustre-release.git diff --git a/lustre/mgs/mgs_nids.c b/lustre/mgs/mgs_nids.c index 52251fc3..781250f 100644 --- a/lustre/mgs/mgs_nids.c +++ b/lustre/mgs/mgs_nids.c @@ -669,18 +669,18 @@ int mgs_get_ir_logs(struct ptlrpc_request *req) unit_size = min_t(int, 1 << body->mcb_bits, CFS_PAGE_SIZE); bytes = mgs_nidtbl_read(req->rq_export, &fsdb->fsdb_nidtbl, res, pages, nrpages, bufsize / unit_size, unit_size); - if (bytes < 0) - GOTO(out, rc = bytes); - - /* start bulk transfer */ - page_count = (bytes + CFS_PAGE_SIZE - 1) >> CFS_PAGE_SHIFT; - LASSERT(page_count <= nrpages); - desc = ptlrpc_prep_bulk_exp(req, page_count, - BULK_PUT_SOURCE, MGS_BULK_PORTAL); - if (desc == NULL) - GOTO(out, rc = -ENOMEM); - - for (i = 0; i < page_count && bytes > 0; i++) { + if (bytes < 0) + GOTO(out, rc = bytes); + + /* start bulk transfer */ + page_count = (bytes + CFS_PAGE_SIZE - 1) >> CFS_PAGE_SHIFT; + LASSERT(page_count <= nrpages); + desc = ptlrpc_prep_bulk_exp(req, page_count, 1, + BULK_PUT_SOURCE, MGS_BULK_PORTAL); + if (desc == NULL) + GOTO(out, rc = -ENOMEM); + + for (i = 0; i < page_count && bytes > 0; i++) { ptlrpc_prep_bulk_page_pin(desc, pages[i], 0, min_t(int, bytes, CFS_PAGE_SIZE)); bytes -= CFS_PAGE_SIZE;