Messages in this thread Patch in this message | | | From | Gregory Haskins <> | Subject | [KVM PATCH v9 2/5] eventfd: use locked POLLHUP | Date | Thu, 02 Jul 2009 11:38:06 -0400 |
| |
eventfd currently emits a POLLHUP wakeup on f_ops->release() to generate a "release" callback. This lets eventfd clients know if the eventfd is about to go away and is very useful particularly for in-kernel clients. However, as it stands today it is not possible to use this feature of eventfd in a race-free way. This patch changes the POLLHUP code to use the locked variant to rectify this problem.
Signed-off-by: Gregory Haskins <ghaskins@novell.com> CC: Davide Libenzi <davidel@xmailserver.org> ---
fs/eventfd.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-)
diff --git a/fs/eventfd.c b/fs/eventfd.c index d9849a1..31d12de 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -105,12 +105,7 @@ static int eventfd_release(struct inode *inode, struct file *file) { struct eventfd_ctx *ctx = file->private_data; - /* - * No need to hold the lock here, since we are on the file cleanup - * path and the ones still attached to the wait queue will be - * serialized by wake_up_locked_poll(). - */ - wake_up_locked_poll(&ctx->wqh, POLLHUP); + wake_up_poll(&ctx->wqh, POLLHUP); eventfd_ctx_put(ctx); return 0; }
| |