diff options
author | delphij <delphij@FreeBSD.org> | 2013-08-21 00:04:31 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2013-08-21 00:04:31 +0000 |
commit | 1b0e7b9e07f0d8a61c4240dc05633e83c63ca643 (patch) | |
tree | 5d2b5965abc967c4a8c7cfcf4a65f7382ce302a6 /cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c | |
parent | ecff4e4b393cc3053645d147e2e24fefb3783ea0 (diff) | |
download | FreeBSD-src-1b0e7b9e07f0d8a61c4240dc05633e83c63ca643.zip FreeBSD-src-1b0e7b9e07f0d8a61c4240dc05633e83c63ca643.tar.gz |
MFV r254421:
Illumos ZFS issues:
3996 want a libzfs_core API to rollback to latest snapshot
Diffstat (limited to 'cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c')
-rw-r--r-- | cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c index 7186c6f..e330ad2 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c @@ -3572,7 +3572,6 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) { rollback_data_t cb = { 0 }; int err; - zfs_cmd_t zc = { 0 }; boolean_t restore_resv = 0; uint64_t old_volsize, new_volsize; zfs_prop_t resv_prop; @@ -3604,22 +3603,15 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) (old_volsize == zfs_prop_get_int(zhp, resv_prop)); } - (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); - - if (ZFS_IS_VOLUME(zhp)) - zc.zc_objset_type = DMU_OST_ZVOL; - else - zc.zc_objset_type = DMU_OST_ZFS; - /* * We rely on zfs_iter_children() to verify that there are no * newer snapshots for the given dataset. Therefore, we can * simply pass the name on to the ioctl() call. There is still * an unlikely race condition where the user has taken a * snapshot since we verified that this was the most recent. - * */ - if ((err = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_ROLLBACK, &zc)) != 0) { + err = lzc_rollback(zhp->zfs_name, NULL, 0); + if (err != 0) { (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno, dgettext(TEXT_DOMAIN, "cannot rollback '%s'"), zhp->zfs_name); |