diff options
author | rm160521 <none@none> | 2007-12-18 20:11:52 -0800 |
---|---|---|
committer | rm160521 <none@none> | 2007-12-18 20:11:52 -0800 |
commit | b9415e832db4ec89116104788643227b77ed508a (patch) | |
tree | 3118be41eea67134e32191af60d67ec4e89f23fe /usr/src/lib/libzfs/common/libzfs_dataset.c | |
parent | 1437d1e8ae307af184c4500fb83334921ff5ff4d (diff) | |
download | illumos-joyent-b9415e832db4ec89116104788643227b77ed508a.tar.gz |
6419176 'zfs rollback <volume@snap>' does not lower reservation (fix lint)
Diffstat (limited to 'usr/src/lib/libzfs/common/libzfs_dataset.c')
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs_dataset.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_dataset.c b/usr/src/lib/libzfs/common/libzfs_dataset.c index af4956de56..347faa485c 100644 --- a/usr/src/lib/libzfs/common/libzfs_dataset.c +++ b/usr/src/lib/libzfs/common/libzfs_dataset.c @@ -3429,7 +3429,8 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap) (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno, dgettext(TEXT_DOMAIN, "cannot rollback '%s'"), zhp->zfs_name); - } else if (zhp->zfs_type == ZFS_TYPE_VOLUME) { + return (err); + } /* * For volumes, if the pre-rollback volsize matched the pre- @@ -3437,16 +3438,18 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap) * the reservation property to the post-rollback volsize. * Make a new handle since the rollback closed the dataset. */ - zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name); - if (!zhp) + if ((zhp->zfs_type == ZFS_TYPE_VOLUME) && + (zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) { + if (err = zvol_create_link(zhp->zfs_hdl, zhp->zfs_name)) { + zfs_close(zhp); return (err); - + } if (restore_resv) { new_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); if (old_volsize != new_volsize) - zfs_prop_set_int(zhp, resv_prop, new_volsize); + err = zfs_prop_set_int(zhp, resv_prop, + new_volsize); } - err = zvol_create_link(zhp->zfs_hdl, zhp->zfs_name); zfs_close(zhp); } return (err); |