From: Richard Laager Date: Fri, 13 Jan 2012 22:24:15 +0000 (-0600) Subject: Allow setting bootfs on any pool X-Git-Tag: zfs-0.6.0-rc7~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=57a4edd;p=zfs Allow setting bootfs on any pool The vdev_is_bootable() restrictions are no longer necessary with recent GRUB2 code. FreeBSD has implemented the same change, except that I moved the Solaris comment to be inside the #ifdef __sun__ block. Signed-off-by: Brian Behlendorf Issue #317 --- diff --git a/module/zfs/vdev.c b/module/zfs/vdev.c index 002baa07e..9f044b68c 100644 --- a/module/zfs/vdev.c +++ b/module/zfs/vdev.c @@ -3053,13 +3053,17 @@ vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state, vdev_aux_t aux) /* * Check the vdev configuration to ensure that it's capable of supporting - * a root pool. Currently, we do not support RAID-Z or partial configuration. - * In addition, only a single top-level vdev is allowed and none of the leaves - * can be wholedisks. + * a root pool. */ boolean_t vdev_is_bootable(vdev_t *vd) { +#if defined(__sun__) || defined(__sun) + /* + * Currently, we do not support RAID-Z or partial configuration. + * In addition, only a single top-level vdev is allowed and none of the + * leaves can be wholedisks. + */ int c; if (!vd->vdev_ops->vdev_op_leaf) { @@ -3080,6 +3084,7 @@ vdev_is_bootable(vdev_t *vd) if (!vdev_is_bootable(vd->vdev_child[c])) return (B_FALSE); } +#endif /* __sun__ || __sun */ return (B_TRUE); }