Illumos #2762: zpool command should have better support for feature flags
[zfs.git] / module / zfs / dmu_tx.c
index ead0f3e..47ec4c1 100644 (file)
@@ -20,9 +20,8 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-/*
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  */
 
 #include <sys/dmu.h>
@@ -63,7 +62,7 @@ static kstat_t *dmu_tx_ksp;
 dmu_tx_t *
 dmu_tx_create_dd(dsl_dir_t *dd)
 {
-       dmu_tx_t *tx = kmem_zalloc(sizeof (dmu_tx_t), KM_SLEEP);
+       dmu_tx_t *tx = kmem_zalloc(sizeof (dmu_tx_t), KM_PUSHPAGE);
        tx->tx_dir = dd;
        if (dd)
                tx->tx_pool = dd->dd_pool;
@@ -141,7 +140,7 @@ dmu_tx_hold_object_impl(dmu_tx_t *tx, objset_t *os, uint64_t object,
                }
        }
 
-       txh = kmem_zalloc(sizeof (dmu_tx_hold_t), KM_SLEEP);
+       txh = kmem_zalloc(sizeof (dmu_tx_hold_t), KM_PUSHPAGE);
        txh->txh_tx = tx;
        txh->txh_dnode = dn;
 #ifdef DEBUG_DMU_TX
@@ -693,7 +692,7 @@ dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, const char *name)
                return;
        }
 
-       ASSERT3P(dmu_ot[dn->dn_type].ot_byteswap, ==, zap_byteswap);
+       ASSERT3U(DMU_OT_BYTESWAP(dn->dn_type), ==, DMU_BSWAP_ZAP);
 
        if (dn->dn_maxblkid == 0 && !add) {
                blkptr_t *bp;
@@ -1241,7 +1240,7 @@ dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *func, void *data)
 {
        dmu_tx_callback_t *dcb;
 
-       dcb = kmem_alloc(sizeof (dmu_tx_callback_t), KM_SLEEP);
+       dcb = kmem_alloc(sizeof (dmu_tx_callback_t), KM_PUSHPAGE);
 
        dcb->dcb_func = func;
        dcb->dcb_data = data;