|
@@ -1239,8 +1239,8 @@ int shmem_unuse(swp_entry_t swap, struct page *page)
|
|
|
* the shmem_swaplist_mutex which might hold up shmem_writepage().
|
|
|
* Charged back to the user (not to caller) when swap account is used.
|
|
|
*/
|
|
|
- error = mem_cgroup_try_charge(page, current->mm, GFP_KERNEL, &memcg,
|
|
|
- false);
|
|
|
+ error = mem_cgroup_try_charge_delay(page, current->mm, GFP_KERNEL,
|
|
|
+ &memcg, false);
|
|
|
if (error)
|
|
|
goto out;
|
|
|
/* No radix_tree_preload: swap entry keeps a place for page in tree */
|
|
@@ -1712,7 +1712,7 @@ repeat:
|
|
|
goto failed;
|
|
|
}
|
|
|
|
|
|
- error = mem_cgroup_try_charge(page, charge_mm, gfp, &memcg,
|
|
|
+ error = mem_cgroup_try_charge_delay(page, charge_mm, gfp, &memcg,
|
|
|
false);
|
|
|
if (!error) {
|
|
|
error = shmem_add_to_page_cache(page, mapping, index,
|
|
@@ -1818,7 +1818,7 @@ alloc_nohuge: page = shmem_alloc_and_acct_page(gfp, inode,
|
|
|
if (sgp == SGP_WRITE)
|
|
|
__SetPageReferenced(page);
|
|
|
|
|
|
- error = mem_cgroup_try_charge(page, charge_mm, gfp, &memcg,
|
|
|
+ error = mem_cgroup_try_charge_delay(page, charge_mm, gfp, &memcg,
|
|
|
PageTransHuge(page));
|
|
|
if (error)
|
|
|
goto unacct;
|
|
@@ -2291,7 +2291,7 @@ static int shmem_mfill_atomic_pte(struct mm_struct *dst_mm,
|
|
|
__SetPageSwapBacked(page);
|
|
|
__SetPageUptodate(page);
|
|
|
|
|
|
- ret = mem_cgroup_try_charge(page, dst_mm, gfp, &memcg, false);
|
|
|
+ ret = mem_cgroup_try_charge_delay(page, dst_mm, gfp, &memcg, false);
|
|
|
if (ret)
|
|
|
goto out_release;
|
|
|
|