mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
OpenZFS 9235 - rename zpool_rewind_policy_t to zpool_load_policy_t
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. Authored by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com> Ported-by: Brian Behlendorf <behlendorf1@llnl.gov> OpenZFS-issue: https://illumos.org/issues/9235 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/d2b1e44 Closes #7532
This commit is contained in:
committed by
Brian Behlendorf
parent
85912983a4
commit
8a393be353
@@ -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.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -65,17 +65,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;
|
||||
@@ -83,24 +83,24 @@ zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_policy_t *zrpp)
|
||||
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 {
|
||||
@@ -206,7 +206,7 @@ const char *zfs_history_event_names[ZFS_NUM_LEGACY_HISTORY_EVENTS] = {
|
||||
|
||||
#if defined(_KERNEL)
|
||||
EXPORT_SYMBOL(zfs_allocatable_devs);
|
||||
EXPORT_SYMBOL(zpool_get_rewind_policy);
|
||||
EXPORT_SYMBOL(zpool_get_load_policy);
|
||||
EXPORT_SYMBOL(zfs_zpl_version_map);
|
||||
EXPORT_SYMBOL(zfs_spa_version_map);
|
||||
EXPORT_SYMBOL(zfs_history_event_names);
|
||||
|
||||
Reference in New Issue
Block a user