Switch KM_SLEEP to KM_PUSHPAGE
authorMassimo Maggi <massimo@mmmm.it>
Sun, 7 Oct 2012 19:54:06 +0000 (21:54 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 8 Oct 2012 17:19:05 +0000 (10:19 -0700)
Prevent snapshot_check to initiate I/O during memory allocation.

Signed-off-by: Massimo Maggi <massimo@mmmm.it>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1023

module/zfs/dmu_objset.c

index c1bc1de..628b23b 100644 (file)
@@ -848,7 +848,7 @@ snapshot_check(void *arg1, void *arg2, dmu_tx_t *tx)
                if (strlen(sn->htag) + MAX_TAG_PREFIX_LEN >= MAXNAMELEN)
                        return (E2BIG);
 
-               sn->ha = kmem_alloc(sizeof (struct dsl_ds_holdarg), KM_SLEEP);
+               sn->ha = kmem_alloc(sizeof(struct dsl_ds_holdarg), KM_PUSHPAGE);
                sn->ha->temphold = B_TRUE;
                sn->ha->htag = sn->htag;
        }