diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 813b4ec1298a..bb3416932ab0 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -951,7 +951,7 @@ restart: | |||
951 | goto got_pg; | 951 | goto got_pg; |
952 | 952 | ||
953 | do { | 953 | do { |
954 | if (cpuset_zone_allowed(*z, gfp_mask)) | 954 | if (cpuset_zone_allowed(*z, gfp_mask|__GFP_HARDWALL)) |
955 | wakeup_kswapd(*z, order); | 955 | wakeup_kswapd(*z, order); |
956 | } while (*(++z)); | 956 | } while (*(++z)); |
957 | 957 | ||
@@ -970,7 +970,8 @@ restart: | |||
970 | alloc_flags |= ALLOC_HARDER; | 970 | alloc_flags |= ALLOC_HARDER; |
971 | if (gfp_mask & __GFP_HIGH) | 971 | if (gfp_mask & __GFP_HIGH) |
972 | alloc_flags |= ALLOC_HIGH; | 972 | alloc_flags |= ALLOC_HIGH; |
973 | alloc_flags |= ALLOC_CPUSET; | 973 | if (wait) |
974 | alloc_flags |= ALLOC_CPUSET; | ||
974 | 975 | ||
975 | /* | 976 | /* |
976 | * Go through the zonelist again. Let __GFP_HIGH and allocations | 977 | * Go through the zonelist again. Let __GFP_HIGH and allocations |