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
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