HomeFreeBSD

Exclude log device ashift from normal class

Description

Exclude log device ashift from normal class

When opening a log device during import its allocation bias will
not yet have been set by vdev_load(). This results in the log
device's ashift being incorrectly applied to the maximum ashift
of the vdevs in the normal class. Which in turn prevents the
removal of any top-level devices due to the ashift check in the
spa_vdev_remove_top_check() function.

This issue is resolved by including vdev_islog in the check since
it will be set correctly during vdev_open().

Reviewed-by: Matt Ahrens <mahrens@delphix.com>
Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #8735

Details

Provenance
Brian Behlendorf <behlendorf1@llnl.gov>Authored on May 29 2019, 6:35 PM
GitHub <noreply@github.com>Committed on May 29 2019, 6:35 PM
Parents
rGec4afd27f198: Fix integer overflow in get_next_chunk()
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG1e724f4f3464: Exclude log device ashift from normal class (authored by Brian Behlendorf <behlendorf1@llnl.gov>).May 29 2019, 6:35 PM