From: Charles Machalow Date: Thu, 10 May 2018 23:01:38 +0000 (-0700) Subject: nvme: Fix sync controller reset return X-Git-Tag: v4.16.9~11 X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4dc9278eb7022011e55e7e876efdbaef790eafcd;p=linux 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: Signed-off-by: Charles Machalow [changelog] Signed-off-by: Keith Busch Signed-off-by: Greg Kroah-Hartman --- 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; }