]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Call cv_signal() with mutex held
authorBoris Protopopov <bprotopopov@users.noreply.github.com>
Mon, 26 Jun 2017 21:36:49 +0000 (17:36 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 26 Jun 2017 21:36:49 +0000 (14:36 -0700)
In bqueue_dequeue(), call cv_signal() with bq_lock held.
Re-enable rsend_009_pos to test the fix.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Boris Protopopov <boris.protopopov@actifio.com>
Closes #5887

module/zfs/bqueue.c
tests/runfiles/linux.run

index 0e490805c3ef964a03b39c992e6ac59857b34d18..f30253d24bfba7189f70d1ad25642973d786bf94 100644 (file)
@@ -97,8 +97,8 @@ bqueue_dequeue(bqueue_t *q)
        ASSERT3P(ret, !=, NULL);
        item_size = obj2node(q, ret)->bqn_size;
        q->bq_size -= item_size;
-       mutex_exit(&q->bq_lock);
        cv_signal(&q->bq_add_cv);
+       mutex_exit(&q->bq_lock);
        return (ret);
 }
 
index a0d89f27763543c7eba66eab1bbad1ea37e8430c..e10ec4dc2c80c31fa1908edefe216b8a0df3022c 100644 (file)
@@ -482,10 +482,9 @@ tests = ['reservation_001_pos', 'reservation_002_pos', 'reservation_003_pos',
 tests = ['rootpool_002_neg', 'rootpool_003_neg', 'rootpool_007_pos']
 
 # rsend_008_pos - https://github.com/zfsonlinux/zfs/issues/6066
-# rsend_009_pos - https://github.com/zfsonlinux/zfs/issues/5887
 [tests/functional/rsend]
 tests = ['rsend_001_pos', 'rsend_002_pos', 'rsend_003_pos', 'rsend_004_pos',
-    'rsend_005_pos', 'rsend_006_pos', 'rsend_007_pos',
+    'rsend_005_pos', 'rsend_006_pos', 'rsend_007_pos', 'rsend_009_pos',
     'rsend_010_pos', 'rsend_011_pos', 'rsend_012_pos',
     'rsend_013_pos', 'rsend_014_pos',
     'rsend_019_pos', 'rsend_020_pos',