diff options
| -rw-r--r-- | mm/z3fold.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/mm/z3fold.c b/mm/z3fold.c index 99be52c5ca45..985732c8b025 100644 --- a/mm/z3fold.c +++ b/mm/z3fold.c | |||
| @@ -190,10 +190,11 @@ static int size_to_chunks(size_t size) | |||
| 190 | 190 | ||
| 191 | static void compact_page_work(struct work_struct *w); | 191 | static void compact_page_work(struct work_struct *w); |
| 192 | 192 | ||
| 193 | static inline struct z3fold_buddy_slots *alloc_slots(struct z3fold_pool *pool) | 193 | static inline struct z3fold_buddy_slots *alloc_slots(struct z3fold_pool *pool, |
| 194 | gfp_t gfp) | ||
| 194 | { | 195 | { |
| 195 | struct z3fold_buddy_slots *slots = kmem_cache_alloc(pool->c_handle, | 196 | struct z3fold_buddy_slots *slots = kmem_cache_alloc(pool->c_handle, |
| 196 | GFP_KERNEL); | 197 | gfp); |
| 197 | 198 | ||
| 198 | if (slots) { | 199 | if (slots) { |
| 199 | memset(slots->slot, 0, sizeof(slots->slot)); | 200 | memset(slots->slot, 0, sizeof(slots->slot)); |
| @@ -295,10 +296,10 @@ static void z3fold_unregister_migration(struct z3fold_pool *pool) | |||
| 295 | 296 | ||
| 296 | /* Initializes the z3fold header of a newly allocated z3fold page */ | 297 | /* Initializes the z3fold header of a newly allocated z3fold page */ |
| 297 | static struct z3fold_header *init_z3fold_page(struct page *page, | 298 | static struct z3fold_header *init_z3fold_page(struct page *page, |
| 298 | struct z3fold_pool *pool) | 299 | struct z3fold_pool *pool, gfp_t gfp) |
| 299 | { | 300 | { |
| 300 | struct z3fold_header *zhdr = page_address(page); | 301 | struct z3fold_header *zhdr = page_address(page); |
| 301 | struct z3fold_buddy_slots *slots = alloc_slots(pool); | 302 | struct z3fold_buddy_slots *slots = alloc_slots(pool, gfp); |
| 302 | 303 | ||
| 303 | if (!slots) | 304 | if (!slots) |
| 304 | return NULL; | 305 | return NULL; |
| @@ -912,7 +913,7 @@ retry: | |||
| 912 | if (!page) | 913 | if (!page) |
| 913 | return -ENOMEM; | 914 | return -ENOMEM; |
| 914 | 915 | ||
| 915 | zhdr = init_z3fold_page(page, pool); | 916 | zhdr = init_z3fold_page(page, pool, gfp); |
| 916 | if (!zhdr) { | 917 | if (!zhdr) { |
| 917 | __free_page(page); | 918 | __free_page(page); |
| 918 | return -ENOMEM; | 919 | return -ENOMEM; |
