I checked when I initially investigated the issue and it was added when ZFS boot support was originally incorporated into Solaris.

FreeBSD's ZFS boot support outstrips illumos upstream, not even requiring the cache file, and when initially discussed with others it was thought the most likely reason for the conditional was some sort of incompatibility with their original implementation.

I've already raised the issue upstream (https://www.illumos.org/issues/5472) so if anything comes of that I'll update.

In the mean time I've not been able to produce any issues with the change, even after sitting in our production tree for a number of months, and it does fix the issues reported by others due to out of date cache files.

    Regards
    Steve

On 25/12/2014 21:10, Will Andrews wrote:
Why was the original condition there? It may not be documented in a commenf, but presumably there is a reason. Did you ask the original author of the code in question?

--Will.


On Tuesday, December 23, 2014, Steven Hartland <s...@freebsd.org <mailto:s...@freebsd.org>> 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);


_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to