svn commit: r239389 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Martin Matuska mm at FreeBSD.org
Sun Aug 19 09:59:42 UTC 2012


Author: mm
Date: Sun Aug 19 09:59:41 2012
New Revision: 239389
URL: http://svn.freebsd.org/changeset/base/239389

Log:
  Backport fix for vendor issue #3085
  3085 zfs diff panics, then panics in a loop on booting
  
  References:
    https://www.illumos.org/issues/3085
  
  PR:		kern/170763
  Obtained from:	ssh://anonhg@hg.illumos.org/illumos-gate (r13772)
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c	Sun Aug 19 09:34:04 2012	(r239388)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c	Sun Aug 19 09:59:41 2012	(r239389)
@@ -3969,6 +3969,11 @@ dsl_dataset_user_release_sync(void *arg1
 	VERIFY(error == 0 || error == ENOENT);
 	zapobj = ds->ds_phys->ds_userrefs_obj;
 	VERIFY(0 == zap_remove(mos, zapobj, ra->htag, tx));
+
+	spa_history_log_internal(LOG_DS_USER_RELEASE,
+	    dp->dp_spa, tx, "<%s> %lld dataset = %llu",
+	    ra->htag, (longlong_t)refs, dsobj);
+
 	if (ds->ds_userrefs == 0 && ds->ds_phys->ds_num_children == 1 &&
 	    DS_IS_DEFER_DESTROY(ds)) {
 		struct dsl_ds_destroyarg dsda = {0};
@@ -3979,10 +3984,6 @@ dsl_dataset_user_release_sync(void *arg1
 		/* We already did the destroy_check */
 		dsl_dataset_destroy_sync(&dsda, tag, tx);
 	}
-
-	spa_history_log_internal(LOG_DS_USER_RELEASE,
-	    dp->dp_spa, tx, "<%s> %lld dataset = %llu",
-	    ra->htag, (longlong_t)refs, dsobj);
 }
 
 static int


More information about the svn-src-all mailing list