nvmf: disconnecting io qpairs during shutdown handling

Signed-off-by: Jacek Kalwas <jacek.kalwas@intel.com>
Change-Id: Iaee05abead7c685989d91f965133ee6b9e221f89
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3476
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: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Seth Howell <seth.howell@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
Jacek Kalwas 2020-07-22 11:22:55 +02:00 committed by Jim Harris
parent 809ab045b0
commit aedcec8a0c

View File

@ -720,6 +720,19 @@ nvmf_ctrlr_cmd_connect(struct spdk_nvmf_request *req)
return _nvmf_ctrlr_connect(req);
}
static void
nvmf_ctrlr_cc_shn_done(struct spdk_io_channel_iter *i, int status)
{
struct spdk_nvmf_ctrlr *ctrlr = spdk_io_channel_iter_get_ctx(i);
if (status < 0) {
SPDK_ERRLOG("Fail to disconnect io ctrlr qpairs\n");
assert(false);
}
ctrlr->vcprop.csts.bits.shst = SPDK_NVME_SHST_COMPLETE;
}
static void
nvmf_ctrlr_cc_reset_done(struct spdk_io_channel_iter *i, int status)
{
@ -800,7 +813,10 @@ nvmf_prop_set_cc(struct spdk_nvmf_ctrlr *ctrlr, uint32_t value)
ctrlr->vcprop.cc.bits.shn = cc.bits.shn;
ctrlr->vcprop.cc.bits.en = 0;
ctrlr->vcprop.csts.bits.rdy = 0;
ctrlr->vcprop.csts.bits.shst = SPDK_NVME_SHST_COMPLETE;
spdk_for_each_channel(ctrlr->subsys->tgt,
nvmf_ctrlr_disconnect_io_qpairs_on_pg,
ctrlr,
nvmf_ctrlr_cc_shn_done);
} else if (cc.bits.shn == 0) {
ctrlr->vcprop.cc.bits.shn = 0;
} else {