Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f2115f9 authored by Tejun Heo's avatar Tejun Heo Committed by Linus Torvalds
Browse files

memcg: restructure mem_cgroup_can_attach()



Restructure it to lower nesting level and help the planned threadgroup
leader iteration changes.

This is pure reorganization.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
Reviewed-by: default avatarVladimir Davydov <vdavydov@parallels.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 64219994
Loading
Loading
Loading
Loading
+32 −29
Original line number Diff line number Diff line
@@ -4834,10 +4834,12 @@ static void mem_cgroup_clear_mc(void)
static int mem_cgroup_can_attach(struct cgroup_subsys_state *css,
				 struct cgroup_taskset *tset)
{
	struct task_struct *p = cgroup_taskset_first(tset);
	int ret = 0;
	struct mem_cgroup *memcg = mem_cgroup_from_css(css);
	struct mem_cgroup *from;
	struct task_struct *p;
	struct mm_struct *mm;
	unsigned long move_flags;
	int ret = 0;

	/*
	 * We are now commited to this value whatever it is. Changes in this
@@ -4845,9 +4847,11 @@ static int mem_cgroup_can_attach(struct cgroup_subsys_state *css,
	 * So we need to save it, and keep it going.
	 */
	move_flags = READ_ONCE(memcg->move_charge_at_immigrate);
	if (move_flags) {
		struct mm_struct *mm;
		struct mem_cgroup *from = mem_cgroup_from_task(p);
	if (!move_flags)
		return 0;

	p = cgroup_taskset_first(tset);
	from = mem_cgroup_from_task(p);

	VM_BUG_ON(from == memcg);

@@ -4874,7 +4878,6 @@ static int mem_cgroup_can_attach(struct cgroup_subsys_state *css,
			mem_cgroup_clear_mc();
	}
	mmput(mm);
	}
	return ret;
}