diff options
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 79a98d98ed33..16c82a868e2b 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -2492,16 +2492,16 @@ int zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order) | |||
2492 | */ | 2492 | */ |
2493 | if (zone_pagecache_reclaimable(zone) <= zone->min_unmapped_pages && | 2493 | if (zone_pagecache_reclaimable(zone) <= zone->min_unmapped_pages && |
2494 | zone_page_state(zone, NR_SLAB_RECLAIMABLE) <= zone->min_slab_pages) | 2494 | zone_page_state(zone, NR_SLAB_RECLAIMABLE) <= zone->min_slab_pages) |
2495 | return 0; | 2495 | return ZONE_RECLAIM_FULL; |
2496 | 2496 | ||
2497 | if (zone_is_all_unreclaimable(zone)) | 2497 | if (zone_is_all_unreclaimable(zone)) |
2498 | return 0; | 2498 | return ZONE_RECLAIM_FULL; |
2499 | 2499 | ||
2500 | /* | 2500 | /* |
2501 | * Do not scan if the allocation should not be delayed. | 2501 | * Do not scan if the allocation should not be delayed. |
2502 | */ | 2502 | */ |
2503 | if (!(gfp_mask & __GFP_WAIT) || (current->flags & PF_MEMALLOC)) | 2503 | if (!(gfp_mask & __GFP_WAIT) || (current->flags & PF_MEMALLOC)) |
2504 | return 0; | 2504 | return ZONE_RECLAIM_NOSCAN; |
2505 | 2505 | ||
2506 | /* | 2506 | /* |
2507 | * Only run zone reclaim on the local zone or on zones that do not | 2507 | * Only run zone reclaim on the local zone or on zones that do not |
@@ -2511,10 +2511,11 @@ int zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order) | |||
2511 | */ | 2511 | */ |
2512 | node_id = zone_to_nid(zone); | 2512 | node_id = zone_to_nid(zone); |
2513 | if (node_state(node_id, N_CPU) && node_id != numa_node_id()) | 2513 | if (node_state(node_id, N_CPU) && node_id != numa_node_id()) |
2514 | return 0; | 2514 | return ZONE_RECLAIM_NOSCAN; |
2515 | 2515 | ||
2516 | if (zone_test_and_set_flag(zone, ZONE_RECLAIM_LOCKED)) | 2516 | if (zone_test_and_set_flag(zone, ZONE_RECLAIM_LOCKED)) |
2517 | return 0; | 2517 | return ZONE_RECLAIM_NOSCAN; |
2518 | |||
2518 | ret = __zone_reclaim(zone, gfp_mask, order); | 2519 | ret = __zone_reclaim(zone, gfp_mask, order); |
2519 | zone_clear_flag(zone, ZONE_RECLAIM_LOCKED); | 2520 | zone_clear_flag(zone, ZONE_RECLAIM_LOCKED); |
2520 | 2521 | ||