]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Wait in 'S' state when send/recv pipe is blocking
authorDeHackEd <DeHackEd@users.noreply.github.com>
Tue, 4 Jun 2019 03:54:43 +0000 (23:54 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 4 Jun 2019 03:54:43 +0000 (20:54 -0700)
Reviewed-by: Paul Dagnelie <pcd@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: DHE <git@dehacked.net>
Closes #8733
Closes #8752

module/zfs/bqueue.c

index f30253d24bfba7189f70d1ad25642973d786bf94..3fc7fcaaada714facad316d7a4fb36570a7dad52 100644 (file)
@@ -73,7 +73,7 @@ bqueue_enqueue(bqueue_t *q, void *data, uint64_t item_size)
        mutex_enter(&q->bq_lock);
        obj2node(q, data)->bqn_size = item_size;
        while (q->bq_size + item_size > q->bq_maxsize) {
-               cv_wait(&q->bq_add_cv, &q->bq_lock);
+               cv_wait_sig(&q->bq_add_cv, &q->bq_lock);
        }
        q->bq_size += item_size;
        list_insert_tail(&q->bq_list, data);
@@ -91,7 +91,7 @@ bqueue_dequeue(bqueue_t *q)
        uint64_t item_size;
        mutex_enter(&q->bq_lock);
        while (q->bq_size == 0) {
-               cv_wait(&q->bq_pop_cv, &q->bq_lock);
+               cv_wait_sig(&q->bq_pop_cv, &q->bq_lock);
        }
        ret = list_remove_head(&q->bq_list);
        ASSERT3P(ret, !=, NULL);