3806b2e1f9
Following the last patch, separate nvme_ctrlr_destruct() into nvme_ctrlr_destruct_async() and nvme_ctrlr_destruct_poll_async(), but keep nvme_ctrlr_destruct() by replacing the internal by nvme_ctrlr_destruct_async() and nvme_ctrlr_destruct_poll_async(). Add shutdown_complete to nvme_ctrlr_detach_ctx. If shutdown_complete is true, we can destruct the controller. The case that nvme_ctrlr_shutdown_async() failed sets shutdown_complete to true. The case that nvme_ctrlr_disable() is called sets shutdown_complete to true unconditionally. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I3994e259f9d3ccf8fede3ac03aadef911eefb9dd Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4415 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jacek Kalwas <jacek.kalwas@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> |
||
---|---|---|
.. | ||
Makefile | ||
nvme_ctrlr_cmd.c | ||
nvme_ctrlr_ocssd_cmd.c | ||
nvme_ctrlr.c | ||
nvme_cuse.c | ||
nvme_cuse.h | ||
nvme_fabric.c | ||
nvme_internal.h | ||
nvme_io_msg.c | ||
nvme_io_msg.h | ||
nvme_ns_cmd.c | ||
nvme_ns_ocssd_cmd.c | ||
nvme_ns.c | ||
nvme_opal_internal.h | ||
nvme_opal.c | ||
nvme_pcie.c | ||
nvme_poll_group.c | ||
nvme_qpair.c | ||
nvme_quirks.c | ||
nvme_rdma.c | ||
nvme_tcp.c | ||
nvme_transport.c | ||
nvme_uevent.c | ||
nvme_uevent.h | ||
nvme_zns.c | ||
nvme.c | ||
spdk_nvme.map |