nvme: allow admin queue fabrics cmds while resetting

For fabrics controllers, the fabrics cmds are what gets
the controller out of reset.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I6804874e867466669a55dff11a0a865add8bbc99

Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/453937
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
Jim Harris 2019-05-09 16:38:36 -07:00 committed by Changpeng Liu
parent 79fad08a7e
commit 36d2149a70

View File

@ -598,6 +598,11 @@ nvme_qpair_submit_request(struct spdk_nvme_qpair *qpair, struct nvme_request *re
if (spdk_likely(qpair->is_enabled)) {
return nvme_transport_qpair_submit_request(qpair, req);
} else if (nvme_qpair_is_admin_queue(qpair) && req->cmd.opc == SPDK_NVME_OPC_FABRIC) {
/* Always allow fabrics commands through on the admin qpair - these get
* the controller out of reset state.
*/
return nvme_transport_qpair_submit_request(qpair, req);
} else {
/* The controller is being reset - queue this request and
* submit it later when the reset is completed.