diff options
Diffstat (limited to 'module/zfs')
-rw-r--r-- | module/zfs/vdev.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/module/zfs/vdev.c b/module/zfs/vdev.c index 8a4d48a1d..e3a9da2d5 100644 --- a/module/zfs/vdev.c +++ b/module/zfs/vdev.c @@ -1179,12 +1179,15 @@ vdev_open_children(vdev_t *vd) * spa_namespace_lock */ if (vdev_uses_zvols(vd)) { +retry_sync: for (c = 0; c < children; c++) vd->vdev_child[c]->vdev_open_error = vdev_open(vd->vdev_child[c]); } else { tq = taskq_create("vdev_open", children, minclsyspri, children, children, TASKQ_PREPOPULATE); + if (tq == NULL) + goto retry_sync; for (c = 0; c < children; c++) VERIFY(taskq_dispatch(tq, vdev_open_child, |