* Cleanup non-standard snapshots and clones.
*/
void
- ztest_dsl_dataset_cleanup(char *osname, uint64_t curval)
+ ztest_dsl_dataset_cleanup(char *osname, uint64_t id)
{
- char snap1name[100];
- char clone1name[100];
- char snap2name[100];
- char clone2name[100];
- char snap3name[100];
+ char snap1name[MAXNAMELEN];
+ char clone1name[MAXNAMELEN];
+ char snap2name[MAXNAMELEN];
+ char clone2name[MAXNAMELEN];
+ char snap3name[MAXNAMELEN];
int error;
- (void) snprintf(snap1name, 100, "%s@s1_%llu",
- osname, (u_longlong_t)curval);
- (void) snprintf(clone1name, 100, "%s/c1_%llu",
- osname, (u_longlong_t)curval);
- (void) snprintf(snap2name, 100, "%s@s2_%llu",
- clone1name, (u_longlong_t)curval);
- (void) snprintf(clone2name, 100, "%s/c2_%llu",
- osname, (u_longlong_t)curval);
- (void) snprintf(snap3name, 100, "%s@s3_%llu",
- clone1name, (u_longlong_t)curval);
- (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu", osname, id);
- (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);
++ (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu",
++ osname, (u_longlong_t)id);
++ (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu",
++ osname, (u_longlong_t)id);
++ (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu",
++ clone1name, (u_longlong_t)id);
++ (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu",
++ osname, (u_longlong_t)id);
++ (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu",
++ clone1name, (u_longlong_t)id);
error = dmu_objset_destroy(clone2name, B_FALSE);
if (error && error != ENOENT)
* Verify dsl_dataset_promote handles EBUSY
*/
void
- ztest_dsl_dataset_promote_busy(ztest_args_t *za)
+ ztest_dsl_dataset_promote_busy(ztest_ds_t *zd, uint64_t id)
{
- int error;
- objset_t *os = za->za_os;
+ ztest_shared_t *zs = ztest_shared;
objset_t *clone;
dsl_dataset_t *ds;
- char snap1name[100];
- char clone1name[100];
- char snap2name[100];
- char clone2name[100];
- char snap3name[100];
- char osname[MAXNAMELEN];
- uint64_t curval = za->za_instance;
+ char snap1name[MAXNAMELEN];
+ char clone1name[MAXNAMELEN];
+ char snap2name[MAXNAMELEN];
+ char clone2name[MAXNAMELEN];
+ char snap3name[MAXNAMELEN];
+ char *osname = zd->zd_name;
+ int error;
- (void) rw_rdlock(&ztest_shared->zs_name_lock);
+ (void) rw_rdlock(&zs->zs_name_lock);
- dmu_objset_name(os, osname);
- ztest_dsl_dataset_cleanup(osname, curval);
-
- (void) snprintf(snap1name, 100, "%s@s1_%llu",
- osname, (u_longlong_t)curval);
- (void) snprintf(clone1name, 100, "%s/c1_%llu",
- osname, (u_longlong_t)curval);
- (void) snprintf(snap2name, 100, "%s@s2_%llu",
- clone1name, (u_longlong_t)curval);
- (void) snprintf(clone2name, 100, "%s/c2_%llu",
- osname, (u_longlong_t)curval);
- (void) snprintf(snap3name, 100, "%s@s3_%llu",
- clone1name, (u_longlong_t)curval);
+ ztest_dsl_dataset_cleanup(osname, id);
+
- (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu", osname, id);
- (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);
++ (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu",
++ osname, (u_longlong_t)id);
++ (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu",
++ osname, (u_longlong_t)id);
++ (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu",
++ clone1name, (u_longlong_t)id);
++ (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu",
++ osname, (u_longlong_t)id);
++ (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu",
++ clone1name, (u_longlong_t)id);
error = dmu_objset_snapshot(osname, strchr(snap1name, '@')+1,
- NULL, FALSE);
+ NULL, B_FALSE);
if (error && error != EEXIST) {
if (error == ENOSPC) {
- ztest_record_enospc("dmu_take_snapshot");
+ ztest_record_enospc(FTAG);
goto out;
}
fatal(0, "dmu_take_snapshot(%s) = %d", snap1name, error);