svn commit: r253781 - vendor-sys/illumos/dist/common/zfs vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/cmd/zfs vendor/illumos/dist/lib/...
Xin LI
delphij at FreeBSD.org
Mon Jul 29 20:31:45 UTC 2013
Author: delphij
Date: Mon Jul 29 20:31:44 2013
New Revision: 253781
URL: http://svnweb.freebsd.org/changeset/base/253781
Log:
Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 14089:520f3adc5d46:
Illumos ZFS issues:
3894 zfs should not allow snapshot of inconsistent dataset
Modified:
vendor/illumos/dist/cmd/zfs/zfs_main.c
vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c
Changes in other areas also in this revision:
Modified:
vendor-sys/illumos/dist/common/zfs/zfs_prop.c
vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c
vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c
vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h
Modified: vendor/illumos/dist/cmd/zfs/zfs_main.c
==============================================================================
--- vendor/illumos/dist/cmd/zfs/zfs_main.c Mon Jul 29 20:26:33 2013 (r253780)
+++ vendor/illumos/dist/cmd/zfs/zfs_main.c Mon Jul 29 20:31:44 2013 (r253781)
@@ -3461,6 +3461,12 @@ zfs_snapshot_cb(zfs_handle_t *zhp, void
int rv = 0;
int error;
+ if (sd->sd_recursive &&
+ zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) != 0) {
+ zfs_close(zhp);
+ return (0);
+ }
+
error = asprintf(&name, "%s@%s", zfs_get_name(zhp), sd->sd_snapname);
if (error == -1)
nomem();
Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c
==============================================================================
--- vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c Mon Jul 29 20:26:33 2013 (r253780)
+++ vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c Mon Jul 29 20:31:44 2013 (r253781)
@@ -1843,6 +1843,10 @@ get_numeric_property(zfs_handle_t *zhp,
zcmd_free_nvlists(&zc);
break;
+ case ZFS_PROP_INCONSISTENT:
+ *val = zhp->zfs_dmustats.dds_inconsistent;
+ break;
+
default:
switch (zfs_prop_get_type(prop)) {
case PROP_TYPE_NUMBER:
@@ -3325,13 +3329,16 @@ zfs_snapshot_cb(zfs_handle_t *zhp, void
char name[ZFS_MAXNAMELEN];
int rv = 0;
- (void) snprintf(name, sizeof (name),
- "%s@%s", zfs_get_name(zhp), sd->sd_snapname);
+ if (zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) == 0) {
+ (void) snprintf(name, sizeof (name),
+ "%s@%s", zfs_get_name(zhp), sd->sd_snapname);
- fnvlist_add_boolean(sd->sd_nvl, name);
+ fnvlist_add_boolean(sd->sd_nvl, name);
- rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd);
+ rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd);
+ }
zfs_close(zhp);
+
return (rv);
}
More information about the svn-src-vendor
mailing list