Cache the swap_node() in a local variable to avoid possible multiple call to swap_node(), though compiler may do this for us. Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> --- mm/swapfile.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index 20012c0c0252..cd66b50f0490 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2454,7 +2454,7 @@ static void setup_swap_info(struct swap_info_struct *p, int prio, unsigned char *swap_map, struct swap_cluster_info *cluster_info) { - int i; + int i, node; if (prio >= 0) p->prio = prio; @@ -2465,11 +2465,12 @@ static void setup_swap_info(struct swap_info_struct *p, int prio, * low-to-high, while swap ordering is high-to-low */ p->list.prio = -p->prio; + node = swap_node(p); for_each_node(i) { if (p->prio >= 0) p->avail_lists[i].prio = -p->prio; else { - if (swap_node(p) == i) + if (node == i) p->avail_lists[i].prio = 1; else p->avail_lists[i].prio = -p->prio; -- 2.19.1