nvmf/rdma: Move get length with DIF from parse_sgl() to fill_iovs()
This is another small code cleanup. Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I49ed19d025c96c87be3b7782536fd98570bd2569 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11966 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: fengchunsong <fengchunsong@huawei.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
parent
9db2571d32
commit
e48475b776
@ -1581,8 +1581,7 @@ nvmf_rdma_calc_num_wrs(uint32_t length, uint32_t io_unit_size, uint32_t block_si
|
||||
static int
|
||||
nvmf_rdma_request_fill_iovs(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
struct spdk_nvmf_rdma_device *device,
|
||||
struct spdk_nvmf_rdma_request *rdma_req,
|
||||
uint32_t length)
|
||||
struct spdk_nvmf_rdma_request *rdma_req)
|
||||
{
|
||||
struct spdk_nvmf_rdma_qpair *rqpair;
|
||||
struct spdk_nvmf_rdma_poll_group *rgroup;
|
||||
@ -1590,6 +1589,7 @@ nvmf_rdma_request_fill_iovs(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
struct ibv_send_wr *wr = &rdma_req->data.wr;
|
||||
int rc;
|
||||
uint32_t num_wrs = 1;
|
||||
uint32_t length;
|
||||
|
||||
rqpair = SPDK_CONTAINEROF(req->qpair, struct spdk_nvmf_rdma_qpair, qpair);
|
||||
rgroup = rqpair->poller->group;
|
||||
@ -1597,6 +1597,13 @@ nvmf_rdma_request_fill_iovs(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
/* rdma wr specifics */
|
||||
nvmf_rdma_setup_request(rdma_req);
|
||||
|
||||
length = req->length;
|
||||
if (spdk_unlikely(req->dif_enabled)) {
|
||||
req->dif.orig_length = length;
|
||||
length = spdk_dif_get_length_with_md(length, &req->dif.dif_ctx);
|
||||
req->dif.elba_length = length;
|
||||
}
|
||||
|
||||
rc = spdk_nvmf_request_get_buffers(req, &rgroup->group, &rtransport->transport,
|
||||
length);
|
||||
if (rc != 0) {
|
||||
@ -1790,13 +1797,7 @@ nvmf_rdma_request_parse_sgl(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
/* fill request length and populate iovs */
|
||||
req->length = length;
|
||||
|
||||
if (spdk_unlikely(req->dif_enabled)) {
|
||||
req->dif.orig_length = length;
|
||||
length = spdk_dif_get_length_with_md(length, &req->dif.dif_ctx);
|
||||
req->dif.elba_length = length;
|
||||
}
|
||||
|
||||
rc = nvmf_rdma_request_fill_iovs(rtransport, device, rdma_req, length);
|
||||
rc = nvmf_rdma_request_fill_iovs(rtransport, device, rdma_req);
|
||||
if (spdk_unlikely(rc < 0)) {
|
||||
if (rc == -EINVAL) {
|
||||
SPDK_ERRLOG("SGL length exceeds the max I/O size\n");
|
||||
|
Loading…
Reference in New Issue
Block a user