Print this page
2882 implement libzfs_core
2883 changing "canmount" property to "on" should not always remount dataset
2900 "zfs snapshot" should be able to create multiple, arbitrary snapshots at once
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Bill Pijewski <wdp@joyent.com>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>

@@ -2250,28 +2250,28 @@
         /*
          * Attempt to create using a bad file.
          */
         nvroot = make_vdev_root("/dev/bogus", NULL, 0, 0, 0, 0, 0, 1);
         VERIFY3U(ENOENT, ==,
-            spa_create("ztest_bad_file", nvroot, NULL, NULL, NULL));
+            spa_create("ztest_bad_file", nvroot, NULL, NULL));
         nvlist_free(nvroot);
 
         /*
          * Attempt to create using a bad mirror.
          */
         nvroot = make_vdev_root("/dev/bogus", NULL, 0, 0, 0, 0, 2, 1);
         VERIFY3U(ENOENT, ==,
-            spa_create("ztest_bad_mirror", nvroot, NULL, NULL, NULL));
+            spa_create("ztest_bad_mirror", nvroot, NULL, NULL));
         nvlist_free(nvroot);
 
         /*
          * Attempt to create an existing pool.  It shouldn't matter
          * what's in the nvroot; we should fail with EEXIST.
          */
         (void) rw_rdlock(&ztest_name_lock);
         nvroot = make_vdev_root("/dev/bogus", NULL, 0, 0, 0, 0, 0, 1);
-        VERIFY3U(EEXIST, ==, spa_create(zo->zo_pool, nvroot, NULL, NULL, NULL));
+        VERIFY3U(EEXIST, ==, spa_create(zo->zo_pool, nvroot, NULL, NULL));
         nvlist_free(nvroot);
         VERIFY3U(0, ==, spa_open(zo->zo_pool, &spa, FTAG));
         VERIFY3U(EBUSY, ==, spa_destroy(zo->zo_pool));
         spa_close(spa, FTAG);
 

@@ -3054,12 +3054,11 @@
         int error;
 
         (void) snprintf(snapname, MAXNAMELEN, "%s@%llu", osname,
             (u_longlong_t)id);
 
-        error = dmu_objset_snapshot(osname, strchr(snapname, '@') + 1,
-            NULL, NULL, B_FALSE, B_FALSE, -1);
+        error = dmu_objset_snapshot_one(osname, strchr(snapname, '@') + 1);
         if (error == ENOSPC) {
                 ztest_record_enospc(FTAG);
                 return (B_FALSE);
         }
         if (error != 0 && error != EEXIST)

@@ -3255,12 +3254,11 @@
         (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id);
         (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id);
         (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id);
         (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id);
 
-        error = dmu_objset_snapshot(osname, strchr(snap1name, '@')+1,
-            NULL, NULL, B_FALSE, B_FALSE, -1);
+        error = dmu_objset_snapshot_one(osname, strchr(snap1name, '@') + 1);
         if (error && error != EEXIST) {
                 if (error == ENOSPC) {
                         ztest_record_enospc(FTAG);
                         goto out;
                 }

@@ -3279,22 +3277,20 @@
                         goto out;
                 }
                 fatal(0, "dmu_objset_create(%s) = %d", clone1name, error);
         }
 
-        error = dmu_objset_snapshot(clone1name, strchr(snap2name, '@')+1,
-            NULL, NULL, B_FALSE, B_FALSE, -1);
+        error = dmu_objset_snapshot_one(clone1name, strchr(snap2name, '@') + 1);
         if (error && error != EEXIST) {
                 if (error == ENOSPC) {
                         ztest_record_enospc(FTAG);
                         goto out;
                 }
                 fatal(0, "dmu_open_snapshot(%s) = %d", snap2name, error);
         }
 
-        error = dmu_objset_snapshot(clone1name, strchr(snap3name, '@')+1,
-            NULL, NULL, B_FALSE, B_FALSE, -1);
+        error = dmu_objset_snapshot_one(clone1name, strchr(snap3name, '@') + 1);
         if (error && error != EEXIST) {
                 if (error == ENOSPC) {
                         ztest_record_enospc(FTAG);
                         goto out;
                 }

@@ -4478,12 +4474,11 @@
 
         /*
          * Create snapshot, clone it, mark snap for deferred destroy,
          * destroy clone, verify snap was also destroyed.
          */
-        error = dmu_objset_snapshot(osname, snapname, NULL, NULL, FALSE,
-            FALSE, -1);
+        error = dmu_objset_snapshot_one(osname, snapname);
         if (error) {
                 if (error == ENOSPC) {
                         ztest_record_enospc("dmu_objset_snapshot");
                         goto out;
                 }

@@ -4521,12 +4516,11 @@
         /*
          * Create snapshot, add temporary hold, verify that we can't
          * destroy a held snapshot, mark for deferred destroy,
          * release hold, verify snapshot was destroyed.
          */
-        error = dmu_objset_snapshot(osname, snapname, NULL, NULL, FALSE,
-            FALSE, -1);
+        error = dmu_objset_snapshot_one(osname, snapname);
         if (error) {
                 if (error == ENOSPC) {
                         ztest_record_enospc("dmu_objset_snapshot");
                         goto out;
                 }

@@ -5610,12 +5604,11 @@
                 char buf[1024];
                 (void) snprintf(buf, sizeof (buf), "feature@%s",
                     spa_feature_table[i].fi_uname);
                 VERIFY3U(0, ==, nvlist_add_uint64(props, buf, 0));
         }
-        VERIFY3U(0, ==, spa_create(ztest_opts.zo_pool, nvroot, props,
-            NULL, NULL));
+        VERIFY3U(0, ==, spa_create(ztest_opts.zo_pool, nvroot, props, NULL));
         nvlist_free(nvroot);
 
         VERIFY3U(0, ==, spa_open(ztest_opts.zo_pool, &spa, FTAG));
         zs->zs_metaslab_sz =
             1ULL << spa->spa_root_vdev->vdev_child[0]->vdev_ms_shift;