Commit e398863b authored by Martin Wilck's avatar Martin Wilck Committed by Jens Axboe

nvme: multipath: round-robin: eliminate "fallback" variable

If we find an optimized path, we quit the loop immediately. Thus we can use
just one variable for the next path, slighly simplifying the code.
Signed-off-by: default avatarMartin Wilck <mwilck@suse.com>
Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 93eb0381
...@@ -233,7 +233,7 @@ static struct nvme_ns *nvme_next_ns(struct nvme_ns_head *head, ...@@ -233,7 +233,7 @@ static struct nvme_ns *nvme_next_ns(struct nvme_ns_head *head,
static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head, static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
int node, struct nvme_ns *old) int node, struct nvme_ns *old)
{ {
struct nvme_ns *ns, *found, *fallback = NULL; struct nvme_ns *ns, *found = NULL;
if (list_is_singular(&head->list)) { if (list_is_singular(&head->list)) {
if (nvme_path_is_disabled(old)) if (nvme_path_is_disabled(old))
...@@ -252,7 +252,7 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head, ...@@ -252,7 +252,7 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
goto out; goto out;
} }
if (ns->ana_state == NVME_ANA_NONOPTIMIZED) if (ns->ana_state == NVME_ANA_NONOPTIMIZED)
fallback = ns; found = ns;
} }
/* /*
...@@ -263,12 +263,11 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head, ...@@ -263,12 +263,11 @@ static struct nvme_ns *nvme_round_robin_path(struct nvme_ns_head *head,
*/ */
if (!nvme_path_is_disabled(old) && if (!nvme_path_is_disabled(old) &&
(old->ana_state == NVME_ANA_OPTIMIZED || (old->ana_state == NVME_ANA_OPTIMIZED ||
(!fallback && old->ana_state == NVME_ANA_NONOPTIMIZED))) (!found && old->ana_state == NVME_ANA_NONOPTIMIZED)))
return old; return old;
if (!fallback) if (!found)
return NULL; return NULL;
found = fallback;
out: out:
rcu_assign_pointer(head->current_path[node], found); rcu_assign_pointer(head->current_path[node], found);
return found; return found;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment