X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fspa_config.c;h=849ae46ec6c8f0594fd2999c6e629e174d4ca279;hb=dba1d705669cf0e33091622d0e950b9459b20e2e;hp=c86884148494cd214165fd69e24b197fb8ffe98a;hpb=b8d06fca089fae4680c3a552fc55c512bfb02202;p=zfs.git diff --git a/module/zfs/spa_config.c b/module/zfs/spa_config.c index c868841..849ae46 100644 --- a/module/zfs/spa_config.c +++ b/module/zfs/spa_config.c @@ -22,7 +22,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef _KERNEL #include #include @@ -64,6 +65,7 @@ static uint64_t spa_config_generation = 1; * userland pools when doing testing. */ char *spa_config_path = ZPOOL_CACHE; +int zfs_autoimport_disable = 0; /* * Called when the module is first loaded, this routine loads the configuration @@ -80,6 +82,9 @@ spa_config_load(void) struct _buf *file; uint64_t fsize; + if (zfs_autoimport_disable) + return; + /* * Open the configuration file. */ @@ -408,6 +413,12 @@ spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg, int getstats) VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, nvroot) == 0); nvlist_free(nvroot); + /* + * Store what's necessary for reading the MOS in the label. + */ + VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_FEATURES_FOR_READ, + spa->spa_label_features) == 0); + if (getstats && spa_load_state(spa) == SPA_LOAD_NONE) { ddt_histogram_t *ddh; ddt_stat_t *dds; @@ -501,4 +512,8 @@ EXPORT_SYMBOL(spa_config_update); module_param(spa_config_path, charp, 0444); MODULE_PARM_DESC(spa_config_path, "SPA config file (/etc/zfs/zpool.cache)"); + +module_param(zfs_autoimport_disable, int, 0644); +MODULE_PARM_DESC(zfs_autoimport_disable, "Disable pool import at module load"); + #endif