fuse: Kill fasync only if interrupt is queued in queue_interrupt()
authorKirill Tkhai <ktkhai@virtuozzo.com>
Thu, 8 Nov 2018 09:05:20 +0000 (12:05 +0300)
committerMiklos Szeredi <mszeredi@redhat.com>
Wed, 13 Feb 2019 12:15:13 +0000 (13:15 +0100)
We should sent signal only in case of interrupt is really queued.  Not a
real problem, but this makes the code clearer and intuitive.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dev.c

index 3feb071..11246e7 100644 (file)
@@ -480,9 +480,9 @@ 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);
+               kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
        }
        spin_unlock(&fiq->waitq.lock);
-       kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
 }
 
 static void request_wait_answer(struct fuse_conn *fc, struct fuse_req *req)