]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
nvme-multipath: factor out a nvme_path_is_disabled helper
authorHannes Reinecke <hare@suse.de>
Thu, 4 Jul 2019 06:10:46 +0000 (08:10 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 9 Jul 2019 21:16:38 +0000 (14:16 -0700)
Factor our a common helper to check if a path has been disabled
by something other than the per-namespace ANA state.

Signed-off-by: Hannes Reinecke <hare@suse.com>
[hch: split from a bigger patch]
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/multipath.c

index 499acf07d61a7a7db1f0e64f4a91d93422eced92..5a6dbb422a9c09c249673a3cf6272eba955807f9 100644 (file)
@@ -123,14 +123,19 @@ void nvme_mpath_clear_current_path(struct nvme_ns *ns)
        }
 }
 
+static bool nvme_path_is_disabled(struct nvme_ns *ns)
+{
+       return ns->ctrl->state != NVME_CTRL_LIVE ||
+               test_bit(NVME_NS_ANA_PENDING, &ns->flags);
+}
+
 static struct nvme_ns *__nvme_find_path(struct nvme_ns_head *head, int node)
 {
        int found_distance = INT_MAX, fallback_distance = INT_MAX, distance;
        struct nvme_ns *found = NULL, *fallback = NULL, *ns;
 
        list_for_each_entry_rcu(ns, &head->list, siblings) {
-               if (ns->ctrl->state != NVME_CTRL_LIVE ||
-                   test_bit(NVME_NS_ANA_PENDING, &ns->flags))
+               if (nvme_path_is_disabled(ns))
                        continue;
 
                if (READ_ONCE(head->subsys->iopolicy) == NVME_IOPOLICY_NUMA)
@@ -184,8 +189,7 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
        for (ns = nvme_next_ns(head, old);
             ns != old;
             ns = nvme_next_ns(head, ns)) {
-               if (ns->ctrl->state != NVME_CTRL_LIVE ||
-                   test_bit(NVME_NS_ANA_PENDING, &ns->flags))
+               if (nvme_path_is_disabled(ns))
                        continue;
 
                if (ns->ana_state == NVME_ANA_OPTIMIZED) {