summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2012-11-04 13:50:08 +0000
committeravg <avg@FreeBSD.org>2012-11-04 13:50:08 +0000
commitf72dea1eb077aaf0c2555f86adbf52c99f41f314 (patch)
tree716216cf6e07c842155a31f84d14505ce6d1e86d
parentb238a5c3f32ebd107a135a212ffb90ffb247a0a6 (diff)
downloadFreeBSD-src-f72dea1eb077aaf0c2555f86adbf52c99f41f314.zip
FreeBSD-src-f72dea1eb077aaf0c2555f86adbf52c99f41f314.tar.gz
zfs_mount: drop vfs.zfs.rootpool.prefer_cached_config tunable
It turned out to be not that useful, because its default value may lead to a problem when a root pool is present in zpool.cache, but its on-disk status is 'exported'. This may happen if the pool was imported in a different environment with -f flag and then exported. MFC after: 12 days
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
index 90a6f7a..874b99b 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
@@ -1655,24 +1655,12 @@ zfs_mount(vfs_t *vfsp)
if ((vfsp->vfs_flag & MNT_ROOTFS) != 0 &&
(vfsp->vfs_flag & MNT_UPDATE) == 0) {
char pname[MAXNAMELEN];
- spa_t *spa;
- int prefer_cache;
error = getpoolname(osname, pname);
+ if (error == 0)
+ error = spa_import_rootpool(pname);
if (error)
goto out;
-
- prefer_cache = 1;
- TUNABLE_INT_FETCH("vfs.zfs.rootpool.prefer_cached_config",
- &prefer_cache);
- mutex_enter(&spa_namespace_lock);
- spa = spa_lookup(pname);
- mutex_exit(&spa_namespace_lock);
- if (!prefer_cache || spa == NULL) {
- error = spa_import_rootpool(pname);
- if (error)
- goto out;
- }
}
DROP_GIANT();
error = zfs_domount(vfsp, osname);
OpenPOWER on IntegriCloud