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