lkml.org 
[lkml]   [2010]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCHv2 2/8] fs/timerfd.c: make use of wait_event_interruptible_locked_irq()
    Date
    > On Fri, 9 Apr 2010, Michal Nazarewicz wrote:
    >> diff --git a/fs/timerfd.c b/fs/timerfd.c
    >> index 1bfc95a..4d2c371 100644
    >> --- a/fs/timerfd.c
    >> +++ b/fs/timerfd.c
    >> @@ -109,31 +109,13 @@ static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count,
    >> struct timerfd_ctx *ctx = file->private_data;
    >> ssize_t res;
    >> u64 ticks = 0;
    >> - DECLARE_WAITQUEUE(wait, current);
    >>
    >> if (count < sizeof(ticks))
    >> return -EINVAL;
    >> spin_lock_irq(&ctx->wqh.lock);
    >> res = -EAGAIN;
    >> - if (!ctx->ticks && !(file->f_flags & O_NONBLOCK)) {
    >> - __add_wait_queue(&ctx->wqh, &wait);
    >> - for (res = 0;;) {
    >> - set_current_state(TASK_INTERRUPTIBLE);
    >> - if (ctx->ticks) {
    >> - res = 0;
    >> - break;
    >> - }
    >> - if (signal_pending(current)) {
    >> - res = -ERESTARTSYS;
    >> - break;
    >> - }
    >> - spin_unlock_irq(&ctx->wqh.lock);
    >> - schedule();
    >> - spin_lock_irq(&ctx->wqh.lock);
    >> - }
    >> - __remove_wait_queue(&ctx->wqh, &wait);
    >> - __set_current_state(TASK_RUNNING);
    >> - }
    >> + if (!(file->f_flags & O_NONBLOCK))
    >> + wait_event_interruptible_locked_irq(ctx->wqh, ctx->ticks);

    Thomas Gleixner <tglx@linutronix.de> writes:
    > With this change we return -EAGAIN instead of -ERESTARTSYS when the
    > wait got interrupted by a signal. That means instead of restarting the
    > syscall we return -EAGAIN to user space.

    Stupid mistake, the following should fix it:

    + res = wait_event_interruptible_locked_irq(ctx->wqh, ctx->ticks);

    Sorry about that.

    I'll resubmit an updated patchset by the end of the week.

    --
    Best regards, _ _
    .o. | Liege of Serenly Enlightened Majesty of o' \,=./ `o
    ..o | Computer Science, Michal "mina86" Nazarewicz (o o)
    ooo +--<mina86-tlen.pl>--<jid:mina86-jabber.org>--ooO--(_)--Ooo--


    \
     
     \ /
      Last update: 2010-04-11 21:19    [W:0.034 / U:0.724 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site