usr/src/uts/common/fs/zfs/spa.c
changeset 4808 63629eaeb41a
parent 4787 602d3f97842c
child 4831 41ec732c6d9f
--- a/usr/src/uts/common/fs/zfs/spa.c	Mon Aug 06 15:02:44 2007 -0700
+++ b/usr/src/uts/common/fs/zfs/spa.c	Mon Aug 06 15:11:21 2007 -0700
@@ -2609,6 +2609,9 @@
 	uint64_t mintxg, maxtxg;
 	vdev_t *rvd = spa->spa_root_vdev;
 
+	ASSERT(MUTEX_HELD(&spa_namespace_lock));
+	ASSERT(!spa_config_held(spa, RW_WRITER));
+
 	if ((uint_t)type >= POOL_SCRUB_TYPES)
 		return (ENOTSUP);
 
@@ -3247,8 +3250,8 @@
 		spa_open_ref(spa, FTAG);
 		mutex_exit(&spa_namespace_lock);
 		spa_async_suspend(spa);
+		mutex_enter(&spa_namespace_lock);
 		VERIFY(spa_scrub(spa, POOL_SCRUB_NONE, B_TRUE) == 0);
-		mutex_enter(&spa_namespace_lock);
 		spa_close(spa, FTAG);
 
 		if (spa->spa_state != POOL_STATE_UNINITIALIZED) {