nvmf/rdma: Query qp state prior to acknowledging disconnect event
This guarantees that the qpair memory still exists. Change-Id: I759197b90513f30488aa46bd26535c663e64dae6 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/423744 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Seth Howell <seth.howell5141@gmail.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
9f6d509bf9
commit
764346697a
@ -947,14 +947,16 @@ nvmf_rdma_disconnect(struct rdma_cm_event *evt)
|
||||
SPDK_ERRLOG("disconnect request: no active connection\n");
|
||||
return -1;
|
||||
}
|
||||
/* ack the disconnect event before rdma_destroy_id */
|
||||
rdma_ack_cm_event(evt);
|
||||
|
||||
rqpair = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_rdma_qpair, qpair);
|
||||
spdk_nvmf_rdma_update_ibv_state(rqpair);
|
||||
|
||||
spdk_nvmf_qpair_disconnect(qpair, NULL, NULL);
|
||||
|
||||
/* The qpair memory is guaranteed to exist until this event is
|
||||
* acknowledged. */
|
||||
rdma_ack_cm_event(evt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user