Print this page
4012 Upper limit of zfs set bounds check for refreservation on volumes is too low
*** 780,789 ****
--- 780,791 ----
uint64_t spa_version;
char *p;
zfs_prop_t resv_prop;
char *strval;
char msg[1024];
+ uint64_t volblocksize;
+ int ncopies;
if (p = strchr(argv[0], '/'))
*p = '\0';
zpool_handle = zpool_open(g_zfs, argv[0]);
if (p != NULL)
*** 802,812 ****
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) {
if (nvlist_add_uint64(props,
--- 804,825 ----
gettext("cannot create '%s'"), argv[0]);
if (props && (real_props = zfs_valid_proplist(g_zfs, type,
props, 0, NULL, msg)) == NULL)
goto error;
! if (nvlist_lookup_string(real_props,
! zfs_prop_to_name(ZFS_PROP_COPIES), &strval) == 0)
! ncopies = atoi(strval);
! else
! ncopies = 1;
! if (nvlist_lookup_uint64(real_props,
! zfs_prop_to_name(ZFS_PROP_VOLBLOCKSIZE),
! &volblocksize) != 0)
! volblocksize = ZVOL_DEFAULT_BLOCKSIZE;
!
! volsize = zvol_volsize_to_reservation_impl(volsize,
! volblocksize, ncopies);
nvlist_free(real_props);
if (nvlist_lookup_string(props, zfs_prop_to_name(resv_prop),
&strval) != 0) {
if (nvlist_add_uint64(props,