mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 19:47:49 +07:00
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: Martin Wilck <mwilck@suse.com> Reviewed-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
93eb0381e1
commit
e398863b75
@ -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,
|
|||||||
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,
|
|||||||
*/
|
*/
|
||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user