nvme: complete error reqs when re-enabling queue
We cannot complete error reqs from spdk_nvme_ctrlr_reset - this could result in completions on threads not expected by the user for I/O queues. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I2e266a2618f1791ef1a1b713d1940357f23f7bff Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/453932 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:
parent
b9fe38c1b9
commit
963e450a71
@ -844,11 +844,6 @@ spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
|
||||
|
||||
nvme_transport_admin_qpair_abort_aers(ctrlr->adminq);
|
||||
|
||||
nvme_qpair_complete_error_reqs(ctrlr->adminq);
|
||||
TAILQ_FOREACH(qpair, &ctrlr->active_io_qpairs, tailq) {
|
||||
nvme_qpair_complete_error_reqs(qpair);
|
||||
}
|
||||
|
||||
/* Disable all queues before disabling the controller hardware. */
|
||||
nvme_qpair_disable(ctrlr->adminq);
|
||||
TAILQ_FOREACH(qpair, &ctrlr->active_io_qpairs, tailq) {
|
||||
@ -1922,6 +1917,7 @@ static void
|
||||
nvme_ctrlr_enable_admin_queue(struct spdk_nvme_ctrlr *ctrlr)
|
||||
{
|
||||
nvme_transport_qpair_reset(ctrlr->adminq);
|
||||
nvme_qpair_complete_error_reqs(ctrlr->adminq);
|
||||
nvme_qpair_enable(ctrlr->adminq);
|
||||
nvme_transport_qpair_abort_reqs(ctrlr->adminq, 0 /* retry */);
|
||||
}
|
||||
|
@ -405,6 +405,7 @@ static bool
|
||||
nvme_qpair_check_enabled(struct spdk_nvme_qpair *qpair)
|
||||
{
|
||||
if (!qpair->is_enabled && !qpair->ctrlr->is_resetting) {
|
||||
nvme_qpair_complete_error_reqs(qpair);
|
||||
nvme_qpair_abort_queued_reqs(qpair, 0 /* retry */);
|
||||
nvme_qpair_enable(qpair);
|
||||
nvme_transport_qpair_abort_reqs(qpair, 0 /* retry */);
|
||||
|
Loading…
Reference in New Issue
Block a user