mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
Illumos #2762: zpool command should have better support for feature flags
2762 zpool command should have better support for feature flags Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Approved by: Eric Schrock <Eric.Schrock@delphix.com> References: illumos/illumos-gate@57221772c3 https://www.illumos.org/issues/2762 Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
committed by
Brian Behlendorf
parent
3bc7e0fb0f
commit
b9b24bb4ca
@@ -44,6 +44,7 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include "libzfs_impl.h"
|
||||
#include "zfeature_common.h"
|
||||
|
||||
/*
|
||||
* Message ID table. This must be kept in sync with the ZPOOL_STATUS_* defines
|
||||
@@ -320,6 +321,30 @@ check_status(nvlist_t *config, boolean_t isimport)
|
||||
if (SPA_VERSION_IS_SUPPORTED(version) && version != SPA_VERSION)
|
||||
return (ZPOOL_STATUS_VERSION_OLDER);
|
||||
|
||||
/*
|
||||
* Usable pool with disabled features
|
||||
*/
|
||||
if (version >= SPA_VERSION_FEATURES) {
|
||||
int i;
|
||||
nvlist_t *feat;
|
||||
|
||||
if (isimport) {
|
||||
feat = fnvlist_lookup_nvlist(config,
|
||||
ZPOOL_CONFIG_LOAD_INFO);
|
||||
feat = fnvlist_lookup_nvlist(feat,
|
||||
ZPOOL_CONFIG_ENABLED_FEAT);
|
||||
} else {
|
||||
feat = fnvlist_lookup_nvlist(config,
|
||||
ZPOOL_CONFIG_FEATURE_STATS);
|
||||
}
|
||||
|
||||
for (i = 0; i < SPA_FEATURES; i++) {
|
||||
zfeature_info_t *fi = &spa_feature_table[i];
|
||||
if (!nvlist_exists(feat, fi->fi_guid))
|
||||
return (ZPOOL_STATUS_FEAT_DISABLED);
|
||||
}
|
||||
}
|
||||
|
||||
return (ZPOOL_STATUS_OK);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user