HomeFreeBSD

Fix taskq creation failure in vdev_open_children()

Description

Fix taskq creation failure in vdev_open_children()

When creating and destroying pools in tight loop it's possible to
exhaust the number of allowed threads on a system. This results
in taskq_create() failling and a NULL dereference.

Resolve the issue by falling back to opening the vdevs all
synchronously.

Reviewed-by: Denys Rtveliashvili <denys@rtveliashvili.name>
Reviewed-by: HÃ¥kan Johansson <f96hajo@chalmers.se>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes zfsonlinux/spl#521
Closes #4637

Details

Provenance
Brian Behlendorf <behlendorf1@llnl.gov>Authored on Oct 24 2016, 8:28 PM
GitHub <noreply@github.com>Committed on Oct 24 2016, 8:28 PM
Parents
rG1bbd8770490f: Turn on/off enclosure slot fault LED even when disk isn't present
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG13d9a004fe53: Fix taskq creation failure in vdev_open_children() (authored by Brian Behlendorf <behlendorf1@llnl.gov>).Oct 24 2016, 8:28 PM