diff options
author | LOLi <[email protected]> | 2018-04-11 23:45:58 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-04-11 14:45:58 -0700 |
commit | 9966754ac55fa693b03155ea460db946e018b862 (patch) | |
tree | 9722705da38e134795862f368d4cbb5d9588ed42 /lib/libzfs/libzfs_pool.c | |
parent | dfb1ad027f23f65bfe47493e195c18565bce4148 (diff) |
Fix zpool set feature@<feature>=disabled
Commit e4010f2 accidentally allows zpool to set pool features to
"disabled"; this should only be allowed at pool creation. This commit
adds additional checks and test coverage to 'zpool set'.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: loli10K <[email protected]>
Closes #7402
Diffstat (limited to 'lib/libzfs/libzfs_pool.c')
-rw-r--r-- | lib/libzfs/libzfs_pool.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/libzfs/libzfs_pool.c b/lib/libzfs/libzfs_pool.c index 8a0931f90..9659e08b7 100644 --- a/lib/libzfs/libzfs_pool.c +++ b/lib/libzfs/libzfs_pool.c @@ -492,6 +492,15 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname, goto error; } + if (!flags.create && + strcmp(strval, ZFS_FEATURE_DISABLED) == 0) { + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "property '%s' can only be set to " + "'disabled' at creation time"), propname); + (void) zfs_error(hdl, EZFS_BADPROP, errbuf); + goto error; + } + if (nvlist_add_uint64(retprops, propname, 0) != 0) { (void) no_memory(hdl); goto error; |