diff --git a/mm/vmscan.c b/mm/vmscan.c
index 518540a4a2a66a1ade20312d1d655ba6923e05b5..2e97baa3b2aa4923d54e0a4818d98e55cd5cc606 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1172,11 +1172,12 @@ loop_again:
 			if (!zone_watermark_ok(zone, order, zone->pages_high,
 					       0, 0)) {
 				end_zone = i;
-				goto scan;
+				break;
 			}
 		}
-		goto out;
-scan:
+		if (i < 0)
+			goto out;
+
 		for (i = 0; i <= end_zone; i++) {
 			struct zone *zone = pgdat->node_zones + i;