diff options
author | Alexander Motin <mav@FreeBSD.org> | 2015-10-18 11:36:43 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2015-10-18 11:36:43 +0000 |
commit | 9a975c8c7b27fce38f2996234bb481f45954eb78 (patch) | |
tree | ec193578311c8db2b0afed1ff6cc568550bdec5b /cddl/contrib/opensolaris/cmd/zfs/zfs_main.c | |
parent | 05b1dc3f1f62f5435323874ed088d872bae64b99 (diff) | |
parent | 3e63c757553472a19bdb02b0b85c61c927326975 (diff) | |
download | src-9a975c8c7b27fce38f2996234bb481f45954eb78.tar.gz src-9a975c8c7b27fce38f2996234bb481f45954eb78.zip |
MFV r247180: 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
Notes
Notes:
svn path=/head/; revision=289499
Diffstat (limited to 'cddl/contrib/opensolaris/cmd/zfs/zfs_main.c')
-rw-r--r-- | cddl/contrib/opensolaris/cmd/zfs/zfs_main.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c index e3ac1ca30d1a..ffc1a099d999 100644 --- a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c +++ b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c @@ -845,10 +845,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'; @@ -864,7 +866,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) { |