|
@@ -1000,7 +1000,7 @@ static void *__ac_get_obj(struct kmem_cache *cachep, struct array_cache *ac,
|
|
|
l3 = cachep->nodelists[numa_mem_id()];
|
|
|
if (!list_empty(&l3->slabs_free) && force_refill) {
|
|
|
struct slab *slabp = virt_to_slab(objp);
|
|
|
- ClearPageSlabPfmemalloc(virt_to_page(slabp->s_mem));
|
|
|
+ ClearPageSlabPfmemalloc(virt_to_head_page(slabp->s_mem));
|
|
|
clear_obj_pfmemalloc(&objp);
|
|
|
recheck_pfmemalloc_active(cachep, ac);
|
|
|
return objp;
|
|
@@ -1032,7 +1032,7 @@ static void *__ac_put_obj(struct kmem_cache *cachep, struct array_cache *ac,
|
|
|
{
|
|
|
if (unlikely(pfmemalloc_active)) {
|
|
|
/* Some pfmemalloc slabs exist, check if this is one */
|
|
|
- struct page *page = virt_to_page(objp);
|
|
|
+ struct page *page = virt_to_head_page(objp);
|
|
|
if (PageSlabPfmemalloc(page))
|
|
|
set_obj_pfmemalloc(&objp);
|
|
|
}
|