--- 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) {