Commit 76434669 authored by Ben Walker's avatar Ben Walker Committed by Jim Harris
Browse files

nvmf/rdma: Query qp state prior to acknowledging disconnect event



This guarantees that the qpair memory still exists.

Change-Id: I759197b90513f30488aa46bd26535c663e64dae6
Signed-off-by: default avatarBen 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: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarSeth Howell <seth.howell5141@gmail.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 9f6d509b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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;
}