summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Machalow <charles.machalow@intel.com>2018-05-10 16:01:38 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-05-16 10:12:35 +0200
commit4dc9278eb7022011e55e7e876efdbaef790eafcd (patch)
treee041eaea2d720c0deee5a4e19dc84f0375e1fe92
parent4af6b3c49a745e2587abaff1b2fa39109e2ee288 (diff)
nvme: Fix sync controller reset return
commit 4e50d9ebaeaa3c6761d2b513ef7039510c8cf213 upstream. If a controller reset is requested while the device has no namespaces, we were incorrectly returning ENETRESET. This patch adds the check for ADMIN_ONLY controller state to indicate a successful reset. Fixes: 8000d1fdb0 ("nvme-rdma: fix sysfs invoked reset_ctrl error flow ") Cc: <stable@vger.kernel.org> Signed-off-by: Charles Machalow <charles.machalow@intel.com> [changelog] Signed-off-by: Keith Busch <keith.busch@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/nvme/host/core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 0b9e60861e53..f81773570dfd 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -122,7 +122,8 @@ int nvme_reset_ctrl_sync(struct nvme_ctrl *ctrl)
ret = nvme_reset_ctrl(ctrl);
if (!ret) {
flush_work(&ctrl->reset_work);
- if (ctrl->state != NVME_CTRL_LIVE)
+ if (ctrl->state != NVME_CTRL_LIVE &&
+ ctrl->state != NVME_CTRL_ADMIN_ONLY)
ret = -ENETRESET;
}