Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 252039
b: refs/heads/master
c: 6a5b18d
h: refs/heads/master
i:
  252037: 3547977
  252035: c55bf61
  252031: 375fe41
v: v3
  • Loading branch information
Namhyung Kim authored and Linus Torvalds committed May 27, 2011
1 parent e69f5df commit 9116d87
Show file tree
Hide file tree
Showing 2 changed files with 14 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: 33278f7f0a9e5a9b29f59e07b7e3182d27769ac2
refs/heads/master: 6a5b18d2bd79795407bf65451a2013bf4dfb588b
22 changes: 13 additions & 9 deletions trunk/mm/page_cgroup.c
Original file line number Diff line number Diff line change
Expand Up @@ -492,8 +492,8 @@ int swap_cgroup_swapon(int type, unsigned long max_pages)
/* memory shortage */
ctrl->map = NULL;
ctrl->length = 0;
vfree(array);
mutex_unlock(&swap_cgroup_mutex);
vfree(array);
goto nomem;
}
mutex_unlock(&swap_cgroup_mutex);
Expand All @@ -508,25 +508,29 @@ int swap_cgroup_swapon(int type, unsigned long max_pages)

void swap_cgroup_swapoff(int type)
{
int i;
struct page **map;
unsigned long i, length;
struct swap_cgroup_ctrl *ctrl;

if (!do_swap_account)
return;

mutex_lock(&swap_cgroup_mutex);
ctrl = &swap_cgroup_ctrl[type];
if (ctrl->map) {
for (i = 0; i < ctrl->length; i++) {
struct page *page = ctrl->map[i];
map = ctrl->map;
length = ctrl->length;
ctrl->map = NULL;
ctrl->length = 0;
mutex_unlock(&swap_cgroup_mutex);

if (map) {
for (i = 0; i < length; i++) {
struct page *page = map[i];
if (page)
__free_page(page);
}
vfree(ctrl->map);
ctrl->map = NULL;
ctrl->length = 0;
vfree(map);
}
mutex_unlock(&swap_cgroup_mutex);
}

#endif

0 comments on commit 9116d87

Please sign in to comment.