mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Illumos 3557, 3558, 3559, 3560
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 3560 dumpadm should be able to remove a dump device Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Approved by: Albert Lee <trisk@nexenta.com> References: https://www.illumos.org/issues/3559 https://github.com/illumos/illumos-gate/commit/c61ea56 Porting notes: - Internal zvol.c changes not applied due to implementation differences. The external interface and behavior was already consistent with the latest upstream code. - Retired 2.6.28 HAVE_CHECK_DISK_SIZE_CHANGE configure check. All supported kernels (2.6.32 and newer) provide this interface. Ported-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #4217
This commit is contained in:
committed by
Brian Behlendorf
parent
21f604d460
commit
59d4c71cca
+11
-1
@@ -833,10 +833,12 @@ zfs_do_create(int argc, char **argv)
|
||||
|
||||
if (type == ZFS_TYPE_VOLUME && !noreserve) {
|
||||
zpool_handle_t *zpool_handle;
|
||||
nvlist_t *real_props = NULL;
|
||||
uint64_t spa_version;
|
||||
char *p;
|
||||
zfs_prop_t resv_prop;
|
||||
char *strval;
|
||||
char msg[1024];
|
||||
|
||||
if ((p = strchr(argv[0], '/')))
|
||||
*p = '\0';
|
||||
@@ -852,7 +854,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) {
|
||||
|
||||
Reference in New Issue
Block a user