提交 ca7ae5c9 编写于 作者: H Hannes Reinecke 提交者: Christoph Hellwig

nvme-multipath: factor out a nvme_path_is_disabled helper

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: NHannes Reinecke <hare@suse.com>
[hch: split from a bigger patch]
Signed-off-by: NChristoph Hellwig <hch@lst.de>
上级 81adb863
...@@ -123,14 +123,19 @@ void nvme_mpath_clear_current_path(struct nvme_ns *ns) ...@@ -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) static struct nvme_ns *__nvme_find_path(struct nvme_ns_head *head, int node)
{ {
int found_distance = INT_MAX, fallback_distance = INT_MAX, distance; int found_distance = INT_MAX, fallback_distance = INT_MAX, distance;
struct nvme_ns *found = NULL, *fallback = NULL, *ns; struct nvme_ns *found = NULL, *fallback = NULL, *ns;
list_for_each_entry_rcu(ns, &head->list, siblings) { list_for_each_entry_rcu(ns, &head->list, siblings) {
if (ns->ctrl->state != NVME_CTRL_LIVE || if (nvme_path_is_disabled(ns))
test_bit(NVME_NS_ANA_PENDING, &ns->flags))
continue; continue;
if (READ_ONCE(head->subsys->iopolicy) == NVME_IOPOLICY_NUMA) 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, ...@@ -184,8 +189,7 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
for (ns = nvme_next_ns(head, old); for (ns = nvme_next_ns(head, old);
ns != old; ns != old;
ns = nvme_next_ns(head, ns)) { ns = nvme_next_ns(head, ns)) {
if (ns->ctrl->state != NVME_CTRL_LIVE || if (nvme_path_is_disabled(ns))
test_bit(NVME_NS_ANA_PENDING, &ns->flags))
continue; continue;
if (ns->ana_state == NVME_ANA_OPTIMIZED) { if (ns->ana_state == NVME_ANA_OPTIMIZED) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册