summaryrefslogtreecommitdiffstats
path: root/drivers/nvme/host
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2019-07-04 08:10:46 +0200
committerChristoph Hellwig <hch@lst.de>2019-07-09 14:17:21 -0700
commit2032d074716a811440aa9cd2e971a0716646d6af (patch)
tree4598ffeecf6e87316361331a53091becfed718fb /drivers/nvme/host
parentca7ae5c966bd4c00626d6ba05d68219f3c1fba36 (diff)
downloadlinux-2032d074716a811440aa9cd2e971a0716646d6af.tar.gz
linux-2032d074716a811440aa9cd2e971a0716646d6af.tar.bz2
linux-2032d074716a811440aa9cd2e971a0716646d6af.zip
nvme-multipath: also check for a disabled path if there is a single sibling
When we have a singular list in nvme_round_robin_path() we still need to check its validity. Signed-off-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/nvme/host')
-rw-r--r--drivers/nvme/host/multipath.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index 5a6dbb422a9c..9b6dc11fa559 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -183,8 +183,11 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
{
struct nvme_ns *ns, *found, *fallback = NULL;
- if (list_is_singular(&head->list))
+ if (list_is_singular(&head->list)) {
+ if (nvme_path_is_disabled(old))
+ return NULL;
return old;
+ }
for (ns = nvme_next_ns(head, old);
ns != old;