Allow setting bootfs property on pools with indirect vdevs

The FreeBSD boot loader relies on the bootfs property and is capable
of booting from removed (indirect) vdevs.

Reviewed-by Eric van Gyzen
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Martin Matuska <mm@FreeBSD.org>
Closes #11763
This commit is contained in:
Martin Matuška 2021-03-20 06:46:43 +01:00 committed by Tony Hutter
parent bc5afff351
commit 16e8e24f9c
1 changed files with 1 additions and 3 deletions

View File

@ -4824,11 +4824,9 @@ vdev_is_bootable(vdev_t *vd)
if (!vd->vdev_ops->vdev_op_leaf) { if (!vd->vdev_ops->vdev_op_leaf) {
const char *vdev_type = vd->vdev_ops->vdev_op_type; const char *vdev_type = vd->vdev_ops->vdev_op_type;
if (strcmp(vdev_type, VDEV_TYPE_MISSING) == 0 || if (strcmp(vdev_type, VDEV_TYPE_MISSING) == 0)
strcmp(vdev_type, VDEV_TYPE_INDIRECT) == 0) {
return (B_FALSE); return (B_FALSE);
} }
}
for (int c = 0; c < vd->vdev_children; c++) { for (int c = 0; c < vd->vdev_children; c++) {
if (!vdev_is_bootable(vd->vdev_child[c])) if (!vdev_is_bootable(vd->vdev_child[c]))