usr/src/uts/common/fs/zfs/dmu_send.c
changeset 12982 5d7f2db1e620
parent 12798 f6c8601080b4
child 13329 c48b8bf84ab7
--- a/usr/src/uts/common/fs/zfs/dmu_send.c	Fri Jul 30 14:57:39 2010 +0100
+++ b/usr/src/uts/common/fs/zfs/dmu_send.c	Fri Jul 30 09:40:31 2010 -0600
@@ -574,6 +574,14 @@
 	if (!rbsa->force && dsl_dataset_modified_since_lastsnap(ds))
 		return (ETXTBSY);
 
+	/* new snapshot name must not exist */
+	err = zap_lookup(ds->ds_dir->dd_pool->dp_meta_objset,
+	    ds->ds_phys->ds_snapnames_zapobj, rbsa->tosnap, 8, 1, &val);
+	if (err == 0)
+		return (EEXIST);
+	if (err != ENOENT)
+		return (err);
+
 	if (rbsa->fromguid) {
 		/* if incremental, most recent snapshot must match fromguid */
 		if (ds->ds_prev == NULL)
@@ -621,13 +629,6 @@
 	if (err != ENOENT)
 		return (err);
 
-	/* new snapshot name must not exist */
-	err = zap_lookup(ds->ds_dir->dd_pool->dp_meta_objset,
-	    ds->ds_phys->ds_snapnames_zapobj, rbsa->tosnap, 8, 1, &val);
-	if (err == 0)
-		return (EEXIST);
-	if (err != ENOENT)
-		return (err);
 	return (0);
 }