--- a/usr/src/uts/common/fs/zfs/dsl_dir.c Fri Oct 30 18:47:17 2009 -0600
+++ b/usr/src/uts/common/fs/zfs/dsl_dir.c Sun Nov 01 14:14:46 2009 -0800
@@ -32,6 +32,7 @@
#include <sys/dsl_synctask.h>
#include <sys/dsl_deleg.h>
#include <sys/spa.h>
+#include <sys/metaslab.h>
#include <sys/zap.h>
#include <sys/zio.h>
#include <sys/arc.h>
@@ -650,7 +651,8 @@
* dsl_pool_adjustedsize()), something is very
* wrong.
*/
- ASSERT3U(used, <=, spa_get_space(dd->dd_pool->dp_spa));
+ ASSERT3U(used, <=, metaslab_class_get_space(
+ spa_normal_class(dd->dd_pool->dp_spa)));
} else {
/*
* the lesser of the space provided by our parent and
@@ -736,8 +738,9 @@
* removes to get through.
*/
if (dd->dd_parent == NULL) {
+ spa_t *spa = dd->dd_pool->dp_spa;
uint64_t poolsize = dsl_pool_adjustedsize(dd->dd_pool, netfree);
- deferred = spa_get_defers(dd->dd_pool->dp_spa);
+ deferred = metaslab_class_get_deferred(spa_normal_class(spa));
if (poolsize - deferred < quota) {
quota = poolsize - deferred;
retval = ENOSPC;