2013-04-26 02:55:01

by Zefan Li

[permalink] [raw]
Subject: [PATCH] cgroup: restore the call to eventfd->poll()

I mistakenly removed the call to eventfd->poll() while I was actually
intending to remove the return value...

Calling evenfd->poll() will hook cgroup_event_wake() to the poll
waitqueue, which will be called to unregister eventfd when rmdir a
cgroup or close eventfd.

Signed-off-by: Li Zefan <[email protected]>
---
kernel/cgroup.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index a45aa12..4b0f2ef 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -3882,6 +3882,8 @@ static int cgroup_write_event_control(struct cgroup *cgrp, struct cftype *cft,
if (ret)
goto fail;

+ efile->f_op->poll(efile, &event->pt);
+
/*
* Events should be removed after rmdir of cgroup directory, but before
* destroying subsystem state objects. Let's take reference to cgroup
--
1.8.0.2


2013-04-26 19:00:34

by [email protected]

[permalink] [raw]
Subject: Re: [PATCH] cgroup: restore the call to eventfd->poll()

On Fri, Apr 26, 2013 at 10:54:52AM +0800, Li Zefan wrote:
> I mistakenly removed the call to eventfd->poll() while I was actually
> intending to remove the return value...
>
> Calling evenfd->poll() will hook cgroup_event_wake() to the poll
> waitqueue, which will be called to unregister eventfd when rmdir a
> cgroup or close eventfd.
>
> Signed-off-by: Li Zefan <[email protected]>

Applied to cgroup/for-3.10. It'd have been better if the patch
description pointed to the specific commit which caused the problem.

Thanks.

--
tejun