linux-next: manual merge of the akpm-current tree with the tree

From: Stephen Rothwell
Date: Thu Nov 15 2012 - 01:25:41 EST


Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
mm/memcontrol.c between commit 2ef37d3fe474 ("memcg: Simplify
mem_cgroup_force_empty_list error handling") from the cgroup tree and
commit 4bfe8322f427 ("memcg: fix hotplugged memory zone oops") from the
akpm-current tree.

I fixed it up (as suggested by Andrew - see below) and can carry the fix
as necessary (no action is required).

--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

diff --cc mm/memcontrol.c
index 08adaaa,dd39ba0..0000000
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@@ -3673,32 -3712,30 +3706,32 @@@ unsigned long mem_cgroup_soft_limit_rec
return nr_reclaimed;
}

-/*
+/**
+ * mem_cgroup_force_empty_list - clears LRU of a group
+ * @memcg: group to clear
+ * @node: NUMA node
+ * @zid: zone id
+ * @lru: lru to to clear
+ *
* Traverse a specified page_cgroup list and try to drop them all. This doesn't
- * reclaim the pages page themselves - it just removes the page_cgroups.
- * Returns true if some page_cgroups were not freed, indicating that the caller
- * must retry this operation.
+ * reclaim the pages page themselves - pages are moved to the parent (or root)
+ * group.
*/
-static bool mem_cgroup_force_empty_list(struct mem_cgroup *memcg,
+static void mem_cgroup_force_empty_list(struct mem_cgroup *memcg,
int node, int zid, enum lru_list lru)
{
- struct mem_cgroup_per_zone *mz;
+ struct lruvec *lruvec;
- unsigned long flags, loop;
+ unsigned long flags;
struct list_head *list;
struct page *busy;
struct zone *zone;

zone = &NODE_DATA(node)->node_zones[zid];
- mz = mem_cgroup_zoneinfo(memcg, node, zid);
- list = &mz->lruvec.lists[lru];
+ lruvec = mem_cgroup_zone_lruvec(zone, memcg);
+ list = &lruvec->lists[lru];

- loop = mem_cgroup_get_lru_size(lruvec, lru);
- /* give some margin against EBUSY etc...*/
- loop += 256;
busy = NULL;
- while (loop--) {
+ do {
struct page_cgroup *pc;
struct page *page;

Attachment: pgp00000.pgp
Description: PGP signature