Commit 6ec974ed authored by Alexey Marchuk's avatar Alexey Marchuk Committed by Jim Harris
Browse files

rdma: Update request length in multi SGL case when dif_insert_or_strip is enabled

parent 7c4bb5e2
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1723,7 +1723,13 @@ nvmf_rdma_request_fill_iovs_multi_sgl(struct spdk_nvmf_rdma_transport *rtranspor

	desc = (struct spdk_nvme_sgl_descriptor *)rdma_req->recv->buf + inline_segment->address;
	for (i = 0; i < num_sgl_descriptors; i++) {
		if (spdk_likely(!req->dif.dif_insert_or_strip)) {
			lengths[i] = desc->keyed.length;
		} else {
			req->dif.orig_length += desc->keyed.length;
			lengths[i] = spdk_dif_get_length_with_md(desc->keyed.length, &req->dif.dif_ctx);
			req->dif.elba_length += lengths[i];
		}
		desc++;
	}

@@ -1751,7 +1757,7 @@ nvmf_rdma_request_fill_iovs_multi_sgl(struct spdk_nvmf_rdma_transport *rtranspor

		current_wr->num_sge = 0;

		rc = nvmf_rdma_fill_wr_sgl(rgroup, device, rdma_req, current_wr, desc->keyed.length);
		rc = nvmf_rdma_fill_wr_sgl(rgroup, device, rdma_req, current_wr, lengths[i]);
		if (rc != 0) {
			rc = -ENOMEM;
			goto err_exit;