nvme/rdma: clear dif_enable when rdma_req is free
The dif_enable is not cleared in _nvmf_rdma_request_free. When the rdma_req is used again, the dif_enable is true while dif.dif_ctx->block_size is zero. As a result, an infinite loop occurs in nvmf_rdma_fill_wr_sgl. Fix issue: #2380 Signed-off-by: Chunsong Feng <fengchunsong@huawei.com> Change-Id: Ic179855f7b257e39ed4a5f6705fbc9dea64210ae Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11646 Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
8be59045ea
commit
4f36a2a66b
@ -1846,6 +1846,7 @@ _nvmf_rdma_request_free(struct spdk_nvmf_rdma_request *rdma_req,
|
||||
rdma_req->rsp.wr.next = NULL;
|
||||
rdma_req->data.wr.next = NULL;
|
||||
rdma_req->offset = 0;
|
||||
rdma_req->req.dif_enabled = false;
|
||||
memset(&rdma_req->req.dif, 0, sizeof(rdma_req->req.dif));
|
||||
rqpair->qd--;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user