On Thu, Oct 03, 2019 at 12:48:39PM -0700, Eric Biggers wrote:
> On Thu, Oct 03, 2019 at 05:54:35PM +0200, Greg Kroah-Hartman wrote:
> >  
> >  static void queue_interrupt(struct fuse_iqueue *fiq, struct fuse_req *req)
> >  {
> > -   spin_lock(&fiq->waitq.lock);
> > +   spin_lock(&fiq->lock);
> >     if (test_bit(FR_FINISHED, &req->flags)) {
> > -           spin_unlock(&fiq->waitq.lock);
> > +           spin_unlock(&fiq->lock);
> >             return;
> >     }
> >     if (list_empty(&req->intr_entry)) {
> >             list_add_tail(&req->intr_entry, &fiq->interrupts);
> >             wake_up_locked(&fiq->waitq);
> >     }
> > -   spin_unlock(&fiq->waitq.lock);
> > +   spin_unlock(&fiq->lock);
> >     kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
> >  }
> 
> This isn't backported correctly.  wake_up_locked() needs to be changed to 
> wake_up().
> 
> diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
> index c0d59a86ada2e..6d39143cfa094 100644
> --- a/fs/fuse/dev.c
> +++ b/fs/fuse/dev.c
> @@ -434,7 +434,7 @@ static void queue_interrupt(struct fuse_iqueue *fiq, 
> struct fuse_req *req)
>       }
>       if (list_empty(&req->intr_entry)) {
>               list_add_tail(&req->intr_entry, &fiq->interrupts);
> -             wake_up_locked(&fiq->waitq);
> +             wake_up(&fiq->waitq);
>       }
>       spin_unlock(&fiq->lock);
>       kill_fasync(&fiq->fasync, SIGIO, POLL_IN);

Thanks for the update and for looking at this.  Now added to the
original patch and pushed out as part of a -rc3.

thanks,

greg k-h

Reply via email to