diff options
author | Tony Lindgren <tony@atomide.com> | 2021-02-15 06:41:56 +0200 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2021-02-15 06:41:56 +0200 |
commit | 857de6fe2f86b009df620f7cdb07c262cc17070d (patch) | |
tree | e9718ebeeef39485a51a9f8e3c8122da18c796cf /mm/filemap.c | |
parent | 9bbce32a20d6a72c767a7f85fd6127babd1410ac (diff) | |
parent | fbfa463be8dc7957ee4f81556e9e1ea2a951807d (diff) |
Merge branch 'fixes-v5.11' into fixes
Diffstat (limited to 'mm/filemap.c')
-rw-r--r-- | mm/filemap.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 5c9d564317a5..aa0e0fb04670 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -835,6 +835,7 @@ noinline int __add_to_page_cache_locked(struct page *page, XA_STATE(xas, &mapping->i_pages, offset); int huge = PageHuge(page); int error; + bool charged = false; VM_BUG_ON_PAGE(!PageLocked(page), page); VM_BUG_ON_PAGE(PageSwapBacked(page), page); @@ -848,6 +849,7 @@ noinline int __add_to_page_cache_locked(struct page *page, error = mem_cgroup_charge(page, current->mm, gfp); if (error) goto error; + charged = true; } gfp &= GFP_RECLAIM_MASK; @@ -896,6 +898,8 @@ unlock: if (xas_error(&xas)) { error = xas_error(&xas); + if (charged) + mem_cgroup_uncharge(page); goto error; } |