summaryrefslogtreecommitdiffstats
path: root/cmd/zfs/zfs_main.c
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2013-02-23 09:06:36 +0000
committermm <mm@FreeBSD.org>2013-02-23 09:06:36 +0000
commit7f9f61e76d1016ac77f0accedd0f2a11fd26b9e4 (patch)
treef8784dc65dd099ad77349d2dd93cf856cb2136fa /cmd/zfs/zfs_main.c
parent337c39257a999664f145ce10152d62ba3469b863 (diff)
downloadFreeBSD-src-7f9f61e76d1016ac77f0accedd0f2a11fd26b9e4.zip
FreeBSD-src-7f9f61e76d1016ac77f0accedd0f2a11fd26b9e4.tar.gz
Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 13967:92bec6d87f59 Illumos ZFS issues: 3557 dumpvp_size is not updated correctly when a dump zvol's size is changed 3558 setting the volsize on a dump device does not return back ENOSPC 3559 setting a volsize larger than the space available sometimes succeeds
Diffstat (limited to 'cmd/zfs/zfs_main.c')
-rw-r--r--cmd/zfs/zfs_main.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/cmd/zfs/zfs_main.c b/cmd/zfs/zfs_main.c
index ee9d289..e5e35e6 100644
--- a/cmd/zfs/zfs_main.c
+++ b/cmd/zfs/zfs_main.c
@@ -775,10 +775,12 @@ zfs_do_create(int argc, char **argv)
if (type == ZFS_TYPE_VOLUME && !noreserve) {
zpool_handle_t *zpool_handle;
+ nvlist_t *real_props;
uint64_t spa_version;
char *p;
zfs_prop_t resv_prop;
char *strval;
+ char msg[1024];
if (p = strchr(argv[0], '/'))
*p = '\0';
@@ -794,7 +796,15 @@ zfs_do_create(int argc, char **argv)
resv_prop = ZFS_PROP_REFRESERVATION;
else
resv_prop = ZFS_PROP_RESERVATION;
- volsize = zvol_volsize_to_reservation(volsize, props);
+
+ (void) snprintf(msg, sizeof (msg),
+ gettext("cannot create '%s'"), argv[0]);
+ if (props && (real_props = zfs_valid_proplist(g_zfs, type,
+ props, 0, NULL, msg)) == NULL)
+ goto error;
+
+ volsize = zvol_volsize_to_reservation(volsize, real_props);
+ nvlist_free(real_props);
if (nvlist_lookup_string(props, zfs_prop_to_name(resv_prop),
&strval) != 0) {
OpenPOWER on IntegriCloud