svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Xin Li delphij at delphij.net
Wed Dec 31 02:12:32 UTC 2014


On 12/23/14 01:31, Steven Hartland wrote:
> Author: smh
> Date: Tue Dec 23 09:31:24 2014
> New Revision: 276123
> URL: https://svnweb.freebsd.org/changeset/base/276123
> 
> Log:
>   Always sync the global ZFS config cache to reflect the new mosconfig
>   
>   This fixes out of date zpool.cache for root pools, which can cause issues
>   such as confusion of zdb etc.
>   
>   MFC after:	1 month
> 
> Modified:
>   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
> 
> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
> ==============================================================================
> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c	Tue Dec 23 08:51:30 2014	(r276122)
> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c	Tue Dec 23 09:31:24 2014	(r276123)
> @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int what)
>  	/*
>  	 * Update the global config cache to reflect the new mosconfig.
>  	 */
> -	if (!spa->spa_is_root)
> -		spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL);
> +	spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL);
>  
>  	if (what == SPA_CONFIG_UPDATE_POOL)
>  		spa_config_update(spa, SPA_CONFIG_UPDATE_VDEVS);

It seems like that this change breaks systems where not all pools are
available (e.g. some of pools are encrypted) at boot time, by removing
all these pools from the cache file.

As a result, on the next boot, these pools would not be imported even
when the devices are available (geli attached), and reverting this
change would restore the system to its previous behavior.

Perhaps it have exposed an existing bug?

Cheers,
-- 
Xin LI <delphij at delphij.net>    https://www.delphij.net/
FreeBSD - The Power to Serve!           Live free or die


More information about the svn-src-head mailing list