aboutsummaryrefslogtreecommitdiff
path: root/stand/libsa/zfs/zfsimpl.c
diff options
context:
space:
mode:
authorToomas Soome <tsoome@FreeBSD.org>2021-04-02 23:40:51 +0000
committerToomas Soome <tsoome@FreeBSD.org>2021-04-03 23:01:03 +0000
commitd36341f7b8ddc2457a1e9e4a721d27d2e66cb39a (patch)
tree49675982d7a6782b91f56f33f0dd622568adfd92 /stand/libsa/zfs/zfsimpl.c
parent6d3f54fd090162ab14e2ec66f46bb1335a127a30 (diff)
downloadsrc-d36341f7b8ddc2457a1e9e4a721d27d2e66cb39a.tar.gz
src-d36341f7b8ddc2457a1e9e4a721d27d2e66cb39a.zip
loader: we should support pools without features
nvlist_check_features_for_read() does return error when there are no features for read. MFC after: 5 days
Diffstat (limited to 'stand/libsa/zfs/zfsimpl.c')
-rw-r--r--stand/libsa/zfs/zfsimpl.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/stand/libsa/zfs/zfsimpl.c b/stand/libsa/zfs/zfsimpl.c
index bc577f168459..7036b508fa3c 100644
--- a/stand/libsa/zfs/zfsimpl.c
+++ b/stand/libsa/zfs/zfsimpl.c
@@ -191,8 +191,16 @@ nvlist_check_features_for_read(nvlist_t *nvl)
rc = nvlist_find(nvl, ZPOOL_CONFIG_FEATURES_FOR_READ,
DATA_TYPE_NVLIST, NULL, &features, NULL);
- if (rc != 0)
- return (rc);
+ switch (rc) {
+ case 0:
+ break; /* Continue with checks */
+
+ case ENOENT:
+ return (0); /* All features are disabled */
+
+ default:
+ return (rc); /* Error while reading nvlist */
+ }
data = (nvs_data_t *)features->nv_data;
nvp = &data->nvl_pair; /* first pair in nvlist */