]> granicus.if.org Git - zfs/commitdiff
Remove the slog restriction on bootfs pools
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 14 Nov 2013 22:22:52 +0000 (14:22 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 14 Nov 2013 22:28:35 +0000 (14:28 -0800)
Under Linux this restriction does not apply because we have access
to all the required devices.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1631

lib/libzfs/libzfs_pool.c
module/zfs/zfs_ioctl.c

index a221f9fc7fe7ba02b3f099869f7c01fea572389b..ccaa86beaf90a0592d5094074a3aa8d11b0485e8 100644 (file)
@@ -1409,13 +1409,6 @@ zpool_add(zpool_handle_t *zhp, nvlist_t *nvroot)
                        (void) zfs_error(hdl, EZFS_BADVERSION, msg);
                        break;
 
-               case EDOM:
-                       zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
-                           "root pool can not have multiple vdevs"
-                           " or separate logs"));
-                       (void) zfs_error(hdl, EZFS_POOL_NOTSUP, msg);
-                       break;
-
                case ENOTBLK:
                        zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
                            "cache device must be a disk or disk slice"));
index f541181e68baefc760ae9fe8cdca808daefba502..52b072a235d4f92212daebb71d0398dd73b6b111 100644 (file)
@@ -1751,8 +1751,7 @@ zfs_ioc_vdev_add(zfs_cmd_t *zc)
 {
        spa_t *spa;
        int error;
-       nvlist_t *config, **l2cache, **spares;
-       uint_t nl2cache = 0, nspares = 0;
+       nvlist_t *config;
 
        error = spa_open(zc->zc_name, &spa, FTAG);
        if (error != 0)
@@ -1760,28 +1759,6 @@ zfs_ioc_vdev_add(zfs_cmd_t *zc)
 
        error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size,
            zc->zc_iflags, &config);
-       (void) nvlist_lookup_nvlist_array(config, ZPOOL_CONFIG_L2CACHE,
-           &l2cache, &nl2cache);
-
-       (void) nvlist_lookup_nvlist_array(config, ZPOOL_CONFIG_SPARES,
-           &spares, &nspares);
-
-       /*
-        * A root pool with concatenated devices is not supported.
-        * Thus, can not add a device to a root pool.
-        *
-        * Intent log device can not be added to a rootpool because
-        * during mountroot, zil is replayed, a seperated log device
-        * can not be accessed during the mountroot time.
-        *
-        * l2cache and spare devices are ok to be added to a rootpool.
-        */
-       if (spa_bootfs(spa) != 0 && nl2cache == 0 && nspares == 0) {
-               nvlist_free(config);
-               spa_close(spa, FTAG);
-               return (SET_ERROR(EDOM));
-       }
-
        if (error == 0) {
                error = spa_vdev_add(spa, config);
                nvlist_free(config);