Author: mav
Date: Mon Apr 16 04:14:03 2018
New Revision: 332550
URL: https://svnweb.freebsd.org/changeset/base/332550

Log:
  MFC r331707: MFV r331706:
  9235 rename zpool_rewind_policy_t to zpool_load_policy_t
  
  illumos/illumos-gate@5dafeea3ebd2dd77affc802bcb90f63faf01589f
  
  We want to be able to pass various settings during import/open of a pool,
  which are not only related to rewind. Instead of adding a new policy and
  duplicate a bunch of code, we should just rename rewind_policy to a more
  generic term like load_policy.
  
  For instance, we'd like to set spa->spa_import_flags from the nvlist,
  rather from a flags parameter passed to spa_import as in some cases we want
  those flags not only for the import case, but also for the open case. One
  such flag could be ZFS_IMPORT_MISSING_LOG (as used in zdb) which would
  allow zfs to open a pool when logs are missing.
  
  Reviewed by: Matt Ahrens <m...@delphix.com>
  Reviewed by: George Wilson <george.wil...@delphix.com>
  Approved by: Robert Mustacchi <r...@joyent.com>
  Author: Pavel Zakharov <pavel.zakha...@delphix.com>

Modified:
  stable/11/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
  stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c
  stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/cmd/zdb/zdb.c    Mon Apr 16 04:13:19 
2018        (r332549)
+++ stable/11/cddl/contrib/opensolaris/cmd/zdb/zdb.c    Mon Apr 16 04:14:03 
2018        (r332550)
@@ -5222,8 +5222,8 @@ main(int argc, char **argv)
                    (dump_opt['X'] ? ZPOOL_EXTREME_REWIND : 0);
 
        if (nvlist_alloc(&policy, NV_UNIQUE_NAME_TYPE, 0) != 0 ||
-           nvlist_add_uint64(policy, ZPOOL_REWIND_REQUEST_TXG, max_txg) != 0 ||
-           nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind) != 0)
+           nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, max_txg) != 0 ||
+           nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY, rewind) != 0)
                fatal("internal error: %s", strerror(ENOMEM));
 
        error = 0;
@@ -5240,7 +5240,7 @@ main(int argc, char **argv)
                        }
 
                        if (nvlist_add_nvlist(cfg,
-                           ZPOOL_REWIND_POLICY, policy) != 0) {
+                           ZPOOL_LOAD_POLICY, policy) != 0) {
                                fatal("can't open '%s': %s",
                                    target, strerror(ENOMEM));
                        }

Modified: stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c   Mon Apr 16 
04:13:19 2018        (r332549)
+++ stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c   Mon Apr 16 
04:14:03 2018        (r332550)
@@ -2357,8 +2357,9 @@ zpool_do_import(int argc, char **argv)
 
        /* In the future, we can capture further policy and include it here */
        if (nvlist_alloc(&policy, NV_UNIQUE_NAME, 0) != 0 ||
-           nvlist_add_uint64(policy, ZPOOL_REWIND_REQUEST_TXG, txg) != 0 ||
-           nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind_policy) != 0)
+           nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, txg) != 0 ||
+           nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY,
+           rewind_policy) != 0)
                goto error;
 
        if (searchdirs == NULL) {
@@ -2483,7 +2484,7 @@ zpool_do_import(int argc, char **argv)
                if (do_destroyed && pool_state != POOL_STATE_DESTROYED)
                        continue;
 
-               verify(nvlist_add_nvlist(config, ZPOOL_REWIND_POLICY,
+               verify(nvlist_add_nvlist(config, ZPOOL_LOAD_POLICY,
                    policy) == 0);
 
                if (argc == 0) {
@@ -3971,8 +3972,10 @@ zpool_do_clear(int argc, char **argv)
 
        /* In future, further rewind policy choices can be passed along here */
        if (nvlist_alloc(&policy, NV_UNIQUE_NAME, 0) != 0 ||
-           nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind_policy) != 0)
+           nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY,
+           rewind_policy) != 0) {
                return (1);
+       }
 
        pool = argv[0];
        device = argc == 2 ? argv[1] : NULL;

Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
==============================================================================
--- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h       Mon Apr 
16 04:13:19 2018        (r332549)
+++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h       Mon Apr 
16 04:14:03 2018        (r332550)
@@ -396,7 +396,7 @@ typedef struct importargs {
        int can_be_active : 1;  /* can the pool be active?              */
        int unique : 1;         /* does 'poolname' already exist?       */
        int exists : 1;         /* set on return if pool already exists */
-       nvlist_t *policy;       /* rewind policy (rewind txg, etc.)     */
+       nvlist_t *policy;       /* load policy (max txg, rewind, etc.)  */
 } importargs_t;
 
 extern nvlist_t *zpool_search_import(libzfs_handle_t *, importargs_t *);

Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c        
Mon Apr 16 04:13:19 2018        (r332549)
+++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c        
Mon Apr 16 04:14:03 2018        (r332550)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2016 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright 2015 RackTop Systems.
  * Copyright 2016 Nexenta Systems, Inc.
  */
@@ -776,7 +776,7 @@ get_configs(libzfs_handle_t *hdl, pool_list_t *pl, boo
                }
 
                if (policy != NULL) {
-                       if (nvlist_add_nvlist(config, ZPOOL_REWIND_POLICY,
+                       if (nvlist_add_nvlist(config, ZPOOL_LOAD_POLICY,
                            policy) != 0)
                                goto nomem;
                }

Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c  Mon Apr 
16 04:13:19 2018        (r332549)
+++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c  Mon Apr 
16 04:14:03 2018        (r332550)
@@ -1715,7 +1715,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
     nvlist_t *props, int flags)
 {
        zfs_cmd_t zc = { 0 };
-       zpool_rewind_policy_t policy;
+       zpool_load_policy_t policy;
        nvlist_t *nv = NULL;
        nvlist_t *nvinfo = NULL;
        nvlist_t *missing = NULL;
@@ -1787,7 +1787,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 
        zcmd_free_nvlists(&zc);
 
-       zpool_get_rewind_policy(config, &policy);
+       zpool_get_load_policy(config, &policy);
 
        if (error) {
                char desc[1024];
@@ -1796,7 +1796,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
                 * Dry-run failed, but we print out what success
                 * looks like if we found a best txg
                 */
-               if (policy.zrp_request & ZPOOL_TRY_REWIND) {
+               if (policy.zlp_rewind & ZPOOL_TRY_REWIND) {
                        zpool_rewind_exclaim(hdl, newname ? origname : thename,
                            B_TRUE, nv);
                        nvlist_free(nv);
@@ -1889,10 +1889,10 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
                        ret = -1;
                else if (zhp != NULL)
                        zpool_close(zhp);
-               if (policy.zrp_request &
+               if (policy.zlp_rewind &
                    (ZPOOL_DO_REWIND | ZPOOL_TRY_REWIND)) {
                        zpool_rewind_exclaim(hdl, newname ? origname : thename,
-                           ((policy.zrp_request & ZPOOL_TRY_REWIND) != 0), nv);
+                           ((policy.zlp_rewind & ZPOOL_TRY_REWIND) != 0), nv);
                }
                nvlist_free(nv);
                return (0);
@@ -3286,7 +3286,7 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
        zfs_cmd_t zc = { 0 };
        char msg[1024];
        nvlist_t *tgt;
-       zpool_rewind_policy_t policy;
+       zpool_load_policy_t policy;
        boolean_t avail_spare, l2cache;
        libzfs_handle_t *hdl = zhp->zpool_hdl;
        nvlist_t *nvi = NULL;
@@ -3318,8 +3318,8 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
                    &zc.zc_guid) == 0);
        }
 
-       zpool_get_rewind_policy(rewindnvl, &policy);
-       zc.zc_cookie = policy.zrp_request;
+       zpool_get_load_policy(rewindnvl, &policy);
+       zc.zc_cookie = policy.zlp_rewind;
 
        if (zcmd_alloc_dst_nvlist(hdl, &zc, zhp->zpool_config_size * 2) != 0)
                return (-1);
@@ -3335,13 +3335,13 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
                }
        }
 
-       if (!error || ((policy.zrp_request & ZPOOL_TRY_REWIND) &&
+       if (!error || ((policy.zlp_rewind & ZPOOL_TRY_REWIND) &&
            errno != EPERM && errno != EACCES)) {
-               if (policy.zrp_request &
+               if (policy.zlp_rewind &
                    (ZPOOL_DO_REWIND | ZPOOL_TRY_REWIND)) {
                        (void) zcmd_read_dst_nvlist(hdl, &zc, &nvi);
                        zpool_rewind_exclaim(hdl, zc.zc_name,
-                           ((policy.zrp_request & ZPOOL_TRY_REWIND) != 0),
+                           ((policy.zlp_rewind & ZPOOL_TRY_REWIND) != 0),
                            nvi);
                        nvlist_free(nvi);
                }

Modified: stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c     Mon Apr 
16 04:13:19 2018        (r332549)
+++ stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c     Mon Apr 
16 04:14:03 2018        (r332550)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 /*
@@ -66,17 +66,17 @@ zfs_allocatable_devs(nvlist_t *nv)
 }
 
 void
-zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_policy_t *zrpp)
+zpool_get_load_policy(nvlist_t *nvl, zpool_load_policy_t *zlpp)
 {
        nvlist_t *policy;
        nvpair_t *elem;
        char *nm;
 
        /* Defaults */
-       zrpp->zrp_request = ZPOOL_NO_REWIND;
-       zrpp->zrp_maxmeta = 0;
-       zrpp->zrp_maxdata = UINT64_MAX;
-       zrpp->zrp_txg = UINT64_MAX;
+       zlpp->zlp_rewind = ZPOOL_NO_REWIND;
+       zlpp->zlp_maxmeta = 0;
+       zlpp->zlp_maxdata = UINT64_MAX;
+       zlpp->zlp_txg = UINT64_MAX;
 
        if (nvl == NULL)
                return;
@@ -84,24 +84,24 @@ zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_po
        elem = NULL;
        while ((elem = nvlist_next_nvpair(nvl, elem)) != NULL) {
                nm = nvpair_name(elem);
-               if (strcmp(nm, ZPOOL_REWIND_POLICY) == 0) {
+               if (strcmp(nm, ZPOOL_LOAD_POLICY) == 0) {
                        if (nvpair_value_nvlist(elem, &policy) == 0)
-                               zpool_get_rewind_policy(policy, zrpp);
+                               zpool_get_load_policy(policy, zlpp);
                        return;
-               } else if (strcmp(nm, ZPOOL_REWIND_REQUEST) == 0) {
-                       if (nvpair_value_uint32(elem, &zrpp->zrp_request) == 0)
-                               if (zrpp->zrp_request & ~ZPOOL_REWIND_POLICIES)
-                                       zrpp->zrp_request = ZPOOL_NO_REWIND;
-               } else if (strcmp(nm, ZPOOL_REWIND_REQUEST_TXG) == 0) {
-                       (void) nvpair_value_uint64(elem, &zrpp->zrp_txg);
-               } else if (strcmp(nm, ZPOOL_REWIND_META_THRESH) == 0) {
-                       (void) nvpair_value_uint64(elem, &zrpp->zrp_maxmeta);
-               } else if (strcmp(nm, ZPOOL_REWIND_DATA_THRESH) == 0) {
-                       (void) nvpair_value_uint64(elem, &zrpp->zrp_maxdata);
+               } else if (strcmp(nm, ZPOOL_LOAD_REWIND_POLICY) == 0) {
+                       if (nvpair_value_uint32(elem, &zlpp->zlp_rewind) == 0)
+                               if (zlpp->zlp_rewind & ~ZPOOL_REWIND_POLICIES)
+                                       zlpp->zlp_rewind = ZPOOL_NO_REWIND;
+               } else if (strcmp(nm, ZPOOL_LOAD_REQUEST_TXG) == 0) {
+                       (void) nvpair_value_uint64(elem, &zlpp->zlp_txg);
+               } else if (strcmp(nm, ZPOOL_LOAD_META_THRESH) == 0) {
+                       (void) nvpair_value_uint64(elem, &zlpp->zlp_maxmeta);
+               } else if (strcmp(nm, ZPOOL_LOAD_DATA_THRESH) == 0) {
+                       (void) nvpair_value_uint64(elem, &zlpp->zlp_maxdata);
                }
        }
-       if (zrpp->zrp_request == 0)
-               zrpp->zrp_request = ZPOOL_NO_REWIND;
+       if (zlpp->zlp_rewind == 0)
+               zlpp->zlp_rewind = ZPOOL_NO_REWIND;
 }
 
 typedef struct zfs_version_spa_map {

Modified: stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h     Mon Apr 
16 04:13:19 2018        (r332549)
+++ stable/11/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h     Mon Apr 
16 04:14:03 2018        (r332550)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 #ifndef        _ZFS_COMUTIL_H
@@ -34,7 +34,7 @@ extern "C" {
 #endif
 
 extern boolean_t zfs_allocatable_devs(nvlist_t *);
-extern void zpool_get_rewind_policy(nvlist_t *, zpool_rewind_policy_t *);
+extern void zpool_get_load_policy(nvlist_t *, zpool_load_policy_t *);
 
 extern int zfs_zpl_version_map(int spa_version);
 extern int zfs_spa_version_map(int zpl_version);

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c      Mon Apr 
16 04:13:19 2018        (r332549)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c      Mon Apr 
16 04:14:03 2018        (r332550)
@@ -2109,13 +2109,13 @@ spa_load_verify(spa_t *spa)
 {
        zio_t *rio;
        spa_load_error_t sle = { 0 };
-       zpool_rewind_policy_t policy;
+       zpool_load_policy_t policy;
        boolean_t verify_ok = B_FALSE;
        int error = 0;
 
-       zpool_get_rewind_policy(spa->spa_config, &policy);
+       zpool_get_load_policy(spa->spa_config, &policy);
 
-       if (policy.zrp_request & ZPOOL_NEVER_REWIND)
+       if (policy.zlp_rewind & ZPOOL_NEVER_REWIND)
                return (0);
 
        dsl_pool_config_enter(spa->spa_dsl_pool, FTAG);
@@ -2154,8 +2154,8 @@ spa_load_verify(spa_t *spa)
        }
 
        if (spa_load_verify_dryrun ||
-           (!error && sle.sle_meta_count <= policy.zrp_maxmeta &&
-           sle.sle_data_count <= policy.zrp_maxdata)) {
+           (!error && sle.sle_meta_count <= policy.zlp_maxmeta &&
+           sle.sle_data_count <= policy.zlp_maxdata)) {
                int64_t loss = 0;
 
                verify_ok = B_TRUE;
@@ -2855,17 +2855,17 @@ spa_ld_trusted_config(spa_t *spa, spa_import_type_t ty
        /*
         * We will use spa_config if we decide to reload the spa or if spa_load
         * fails and we rewind. We must thus regenerate the config using the
-        * MOS information with the updated paths. Rewind policy is an import
-        * setting and is not in the MOS. We copy it over to our new, trusted
-        * config.
+        * MOS information with the updated paths. ZPOOL_LOAD_POLICY is used to
+        * pass settings on how to load the pool and is not stored in the MOS.
+        * We copy it over to our new, trusted config.
         */
        mos_config_txg = fnvlist_lookup_uint64(mos_config,
            ZPOOL_CONFIG_POOL_TXG);
        nvlist_free(mos_config);
        mos_config = spa_config_generate(spa, NULL, mos_config_txg, B_FALSE);
-       if (nvlist_lookup_nvlist(spa->spa_config, ZPOOL_REWIND_POLICY,
+       if (nvlist_lookup_nvlist(spa->spa_config, ZPOOL_LOAD_POLICY,
            &policy) == 0)
-               fnvlist_add_nvlist(mos_config, ZPOOL_REWIND_POLICY, policy);
+               fnvlist_add_nvlist(mos_config, ZPOOL_LOAD_POLICY, policy);
        spa_config_set(spa, mos_config);
        spa->spa_config_source = SPA_CONFIG_SRC_MOS;
 
@@ -4125,13 +4125,13 @@ spa_open_common(const char *pool, spa_t **spapp, void 
        }
 
        if (spa->spa_state == POOL_STATE_UNINITIALIZED) {
-               zpool_rewind_policy_t policy;
+               zpool_load_policy_t policy;
 
                firstopen = B_TRUE;
 
-               zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config,
+               zpool_get_load_policy(nvpolicy ? nvpolicy : spa->spa_config,
                    &policy);
-               if (policy.zrp_request & ZPOOL_DO_REWIND)
+               if (policy.zlp_rewind & ZPOOL_DO_REWIND)
                        state = SPA_LOAD_RECOVER;
 
                spa_activate(spa, spa_mode_global);
@@ -4141,8 +4141,8 @@ spa_open_common(const char *pool, spa_t **spapp, void 
                spa->spa_config_source = SPA_CONFIG_SRC_CACHEFILE;
 
                zfs_dbgmsg("spa_open_common: opening %s", pool);
-               error = spa_load_best(spa, state, policy.zrp_txg,
-                   policy.zrp_request);
+               error = spa_load_best(spa, state, policy.zlp_txg,
+                   policy.zlp_rewind);
 
                if (error == EBADF) {
                        /*
@@ -5326,7 +5326,7 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
        spa_t *spa;
        char *altroot = NULL;
        spa_load_state_t state = SPA_LOAD_IMPORT;
-       zpool_rewind_policy_t policy;
+       zpool_load_policy_t policy;
        uint64_t mode = spa_mode_global;
        uint64_t readonly = B_FALSE;
        int error;
@@ -5377,8 +5377,8 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
         */
        spa_async_suspend(spa);
 
-       zpool_get_rewind_policy(config, &policy);
-       if (policy.zrp_request & ZPOOL_DO_REWIND)
+       zpool_get_load_policy(config, &policy);
+       if (policy.zlp_rewind & ZPOOL_DO_REWIND)
                state = SPA_LOAD_RECOVER;
 
        spa->spa_config_source = SPA_CONFIG_SRC_TRYIMPORT;
@@ -5388,9 +5388,9 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
                zfs_dbgmsg("spa_import: importing %s", pool);
        } else {
                zfs_dbgmsg("spa_import: importing %s, max_txg=%lld "
-                   "(RECOVERY MODE)", pool, (longlong_t)policy.zrp_txg);
+                   "(RECOVERY MODE)", pool, (longlong_t)policy.zlp_txg);
        }
-       error = spa_load_best(spa, state, policy.zrp_txg, policy.zrp_request);
+       error = spa_load_best(spa, state, policy.zlp_txg, policy.zlp_rewind);
 
        /*
         * Propagate anything learned while loading the pool and pass it
@@ -5517,7 +5517,7 @@ spa_tryimport(nvlist_t *tryconfig)
        spa_t *spa;
        uint64_t state;
        int error;
-       zpool_rewind_policy_t policy;
+       zpool_load_policy_t policy;
 
        if (nvlist_lookup_string(tryconfig, ZPOOL_CONFIG_POOL_NAME, &poolname))
                return (NULL);
@@ -5533,16 +5533,14 @@ spa_tryimport(nvlist_t *tryconfig)
        spa_activate(spa, FREAD);
 
        /*
-        * Rewind pool if a max txg was provided. Note that even though we
-        * retrieve the complete rewind policy, only the rewind txg is relevant
-        * for tryimport.
+        * Rewind pool if a max txg was provided.
         */
-       zpool_get_rewind_policy(spa->spa_config, &policy);
-       if (policy.zrp_txg != UINT64_MAX) {
-               spa->spa_load_max_txg = policy.zrp_txg;
+       zpool_get_load_policy(spa->spa_config, &policy);
+       if (policy.zlp_txg != UINT64_MAX) {
+               spa->spa_load_max_txg = policy.zlp_txg;
                spa->spa_extreme_rewind = B_TRUE;
                zfs_dbgmsg("spa_tryimport: importing %s, max_txg=%lld",
-                   poolname, (longlong_t)policy.zrp_txg);
+                   poolname, (longlong_t)policy.zlp_txg);
        } else {
                zfs_dbgmsg("spa_tryimport: importing %s", poolname);
        }

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h      Mon Apr 
16 04:13:19 2018        (r332549)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h      Mon Apr 
16 04:14:03 2018        (r332550)
@@ -501,7 +501,7 @@ typedef enum {
 #define        ZPL_VERSION_USERSPACE           ZPL_VERSION_4
 #define        ZPL_VERSION_SA                  ZPL_VERSION_5
 
-/* Rewind request information */
+/* Rewind policy information */
 #define        ZPOOL_NO_REWIND         1  /* No policy - default behavior */
 #define        ZPOOL_NEVER_REWIND      2  /* Do not search for best txg or 
rewind */
 #define        ZPOOL_TRY_REWIND        4  /* Search for best txg, but do not 
rewind */
@@ -510,12 +510,12 @@ typedef enum {
 #define        ZPOOL_REWIND_MASK       28 /* All the possible rewind bits */
 #define        ZPOOL_REWIND_POLICIES   31 /* All the possible policy bits */
 
-typedef struct zpool_rewind_policy {
-       uint32_t        zrp_request;    /* rewind behavior requested */
-       uint64_t        zrp_maxmeta;    /* max acceptable meta-data errors */
-       uint64_t        zrp_maxdata;    /* max acceptable data errors */
-       uint64_t        zrp_txg;        /* specific txg to load */
-} zpool_rewind_policy_t;
+typedef struct zpool_load_policy {
+       uint32_t        zlp_rewind;     /* rewind policy requested */
+       uint64_t        zlp_maxmeta;    /* max acceptable meta-data errors */
+       uint64_t        zlp_maxdata;    /* max acceptable data errors */
+       uint64_t        zlp_txg;        /* specific txg to load */
+} zpool_load_policy_t;
 
 /*
  * The following are configuration names used in the nvlist describing a pool's
@@ -603,12 +603,12 @@ typedef struct zpool_rewind_policy {
 #define        ZPOOL_CONFIG_FRU                "fru"
 #define        ZPOOL_CONFIG_AUX_STATE          "aux_state"
 
-/* Rewind policy parameters */
-#define        ZPOOL_REWIND_POLICY             "rewind-policy"
-#define        ZPOOL_REWIND_REQUEST            "rewind-request"
-#define        ZPOOL_REWIND_REQUEST_TXG        "rewind-request-txg"
-#define        ZPOOL_REWIND_META_THRESH        "rewind-meta-thresh"
-#define        ZPOOL_REWIND_DATA_THRESH        "rewind-data-thresh"
+/* Pool load policy parameters */
+#define        ZPOOL_LOAD_POLICY               "load-policy"
+#define        ZPOOL_LOAD_REWIND_POLICY        "load-rewind-policy"
+#define        ZPOOL_LOAD_REQUEST_TXG          "load-request-txg"
+#define        ZPOOL_LOAD_META_THRESH          "load-meta-thresh"
+#define        ZPOOL_LOAD_DATA_THRESH          "load-data-thresh"
 
 /* Rewind data discovered */
 #define        ZPOOL_CONFIG_LOAD_TIME          "rewind_txg_ts"
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to