summaryrefslogtreecommitdiffstats
path: root/module/zfs/vdev.c
diff options
context:
space:
mode:
authorRichard Laager <[email protected]>2012-01-13 16:24:15 -0600
committerBrian Behlendorf <[email protected]>2012-01-17 13:49:07 -0800
commit57a4eddc4d5e1e6c10d8d7dcf87a9fc27398adcd (patch)
treee7cc234e3c997eb51146647dd916117498ddfb1c /module/zfs/vdev.c
parent08d08ebba2247ad404001785a890de4281d0a362 (diff)
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 <[email protected]> Issue #317
Diffstat (limited to 'module/zfs/vdev.c')
-rw-r--r--module/zfs/vdev.c11
1 files changed, 8 insertions, 3 deletions
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);
}