On Thu, 2 Jul 2009, Gregory Haskins wrote: > 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@xxxxxxxxxx> > CC: Davide Libenzi <davidel@xxxxxxxxxxxxxxx> > --- > > 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; > } ACK. BTW, mainline already has the correct wake_up_poll(). - Davide -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html