diff --git a/mm/swapfile.c b/mm/swapfile.c index b6e68dcf7a18..264d5837257a 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -763,9 +763,7 @@ static int scan_swap_map_slots(struct swap_info_struct *si, goto checks; else goto scan; - } - - if (unlikely(!si->cluster_nr--)) { + } else if (unlikely(!si->cluster_nr--)) { if (si->pages - si->inuse_pages < SWAPFILE_CLUSTER) { si->cluster_nr = SWAPFILE_CLUSTER - 1; goto checks; @@ -873,10 +871,8 @@ checks: goto checks; else goto done; - } - - /* non-ssd case, still more slots in cluster? */ - if (si->cluster_nr && !si->swap_map[++offset]) { + } else if (si->cluster_nr && !si->swap_map[++offset]) { + /* non-ssd case, still more slots in cluster? */ --si->cluster_nr; goto checks; }