Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 208522
b: refs/heads/master
c: 73045c4
h: refs/heads/master
v: v3
  • Loading branch information
Daisuke Nishimura authored and Linus Torvalds committed Aug 11, 2010
1 parent c3b9a23 commit fe0d248
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bd0d24bfe8a8f8d2400569740874a67d164d40a9
refs/heads/master: 73045c47b6facbdf4656e6763c8cb469de4337e2
17 changes: 8 additions & 9 deletions trunk/mm/memcontrol.c
Original file line number Diff line number Diff line change
Expand Up @@ -2018,10 +2018,9 @@ static int mem_cgroup_move_parent(struct page_cgroup *pc,
* < 0 if the cgroup is over its limit
*/
static int mem_cgroup_charge_common(struct page *page, struct mm_struct *mm,
gfp_t gfp_mask, enum charge_type ctype,
struct mem_cgroup *memcg)
gfp_t gfp_mask, enum charge_type ctype)
{
struct mem_cgroup *mem;
struct mem_cgroup *mem = NULL;
struct page_cgroup *pc;
int ret;

Expand All @@ -2031,7 +2030,6 @@ static int mem_cgroup_charge_common(struct page *page, struct mm_struct *mm,
return 0;
prefetchw(pc);

mem = memcg;
ret = __mem_cgroup_try_charge(mm, gfp_mask, &mem, true);
if (ret || !mem)
return ret;
Expand Down Expand Up @@ -2059,7 +2057,7 @@ int mem_cgroup_newpage_charge(struct page *page,
if (unlikely(!mm))
mm = &init_mm;
return mem_cgroup_charge_common(page, mm, gfp_mask,
MEM_CGROUP_CHARGE_TYPE_MAPPED, NULL);
MEM_CGROUP_CHARGE_TYPE_MAPPED);
}

static void
Expand All @@ -2069,7 +2067,6 @@ __mem_cgroup_commit_charge_swapin(struct page *page, struct mem_cgroup *ptr,
int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
gfp_t gfp_mask)
{
struct mem_cgroup *mem = NULL;
int ret;

if (mem_cgroup_disabled())
Expand Down Expand Up @@ -2101,22 +2098,24 @@ int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
unlock_page_cgroup(pc);
}

if (unlikely(!mm && !mem))
if (unlikely(!mm))
mm = &init_mm;

if (page_is_file_cache(page))
return mem_cgroup_charge_common(page, mm, gfp_mask,
MEM_CGROUP_CHARGE_TYPE_CACHE, NULL);
MEM_CGROUP_CHARGE_TYPE_CACHE);

/* shmem */
if (PageSwapCache(page)) {
struct mem_cgroup *mem = NULL;

ret = mem_cgroup_try_charge_swapin(mm, page, gfp_mask, &mem);
if (!ret)
__mem_cgroup_commit_charge_swapin(page, mem,
MEM_CGROUP_CHARGE_TYPE_SHMEM);
} else
ret = mem_cgroup_charge_common(page, mm, gfp_mask,
MEM_CGROUP_CHARGE_TYPE_SHMEM, mem);
MEM_CGROUP_CHARGE_TYPE_SHMEM);

return ret;
}
Expand Down

0 comments on commit fe0d248

Please sign in to comment.