summaryrefslogtreecommitdiff
path: root/usr/src/lib/libzfs/common/libzfs_dataset.c
diff options
context:
space:
mode:
authorDon Brady <don.brady@delphix.com>2019-04-12 15:10:57 +0000
committerDan McDonald <danmcd@joyent.com>2019-04-13 00:31:22 -0400
commit663207adb1669640c01c5ec6949ce78fd806efae (patch)
tree16342a5e43b1009b87750b355927a34144204b4a /usr/src/lib/libzfs/common/libzfs_dataset.c
parent78a53e201c2691debc57ede24c524118299ab18c (diff)
downloadillumos-gate-663207adb1669640c01c5ec6949ce78fd806efae.tar.gz
10601 Pool allocation classes
10757 Add -gLp to zpool subcommands for alt vdev names Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: HÃ¥kan Johansson <f96hajo@chalmers.se> Portions contributed by: Richard Yao <ryao@gentoo.org> Portions contributed by: Chunwei Chen <david.chen@nutanix.com> Portions contributed by: loli10K <ezomori.nozomu@gmail.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Richard Laager <rlaager@wiktel.com> Reviewed by: Alek Pinchuk <apinchuk@datto.com> Reviewed by: Andreas Dilger <andreas.dilger@chamcloud.com> Reviewed by: DHE <git@dehacked.net> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed by: Gregor Kopka <gregor@kopka.net> Reviewed by: Kash Pande <kash@tripleback.net> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Tony Hutter <hutter2@llnl.gov> Reviewed by: George Melikov <mail@gmelikov.ru> Reviewed by: Giuseppe Di Natale <guss80@gmail.com> Reviewed by: bunder2015 <omfgbunder@gmail.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/lib/libzfs/common/libzfs_dataset.c')
-rw-r--r--usr/src/lib/libzfs/common/libzfs_dataset.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_dataset.c b/usr/src/lib/libzfs/common/libzfs_dataset.c
index f27322b694..662e207eea 100644
--- a/usr/src/lib/libzfs/common/libzfs_dataset.c
+++ b/usr/src/lib/libzfs/common/libzfs_dataset.c
@@ -1173,6 +1173,36 @@ zfs_valid_proplist(libzfs_handle_t *hdl, zfs_type_t type, nvlist_t *nvl,
}
break;
}
+
+ case ZFS_PROP_SPECIAL_SMALL_BLOCKS:
+ if (zpool_hdl != NULL) {
+ char state[64] = "";
+
+ /*
+ * Issue a warning but do not fail so that
+ * tests for setable properties succeed.
+ */
+ if (zpool_prop_get_feature(zpool_hdl,
+ "feature@allocation_classes", state,
+ sizeof (state)) != 0 ||
+ strcmp(state, ZFS_FEATURE_ACTIVE) != 0) {
+ (void) fprintf(stderr, gettext(
+ "%s: property requires a special "
+ "device in the pool\n"), propname);
+ }
+ }
+ if (intval != 0 &&
+ (intval < SPA_MINBLOCKSIZE ||
+ intval > SPA_OLD_MAXBLOCKSIZE || !ISP2(intval))) {
+ zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+ "invalid '%s=%d' property: must be zero or "
+ "a power of 2 from 512B to 128K"), propname,
+ intval);
+ (void) zfs_error(hdl, EZFS_BADPROP, errbuf);
+ goto error;
+ }
+ break;
+
case ZFS_PROP_MLSLABEL:
{
/*