]> granicus.if.org Git - zfs/commitdiff
Switch KM_SLEEP to KM_PUSHPAGE
authorBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 17 Sep 2012 18:22:23 +0000 (11:22 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 17 Sep 2012 18:22:23 +0000 (11:22 -0700)
This warning indicates the incorrect use of KM_SLEEP in a call
path which must use KM_PUSHPAGE to avoid deadlocking in direct
reclaim.  See commit b8d06fca089fae4680c3a552fc55c512bfb02202
for additional details.

  SPL: Fixing allocation for task txg_sync (6093) which
  used GFP flags 0x297bda7c with PF_NOFS set

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #917

module/zfs/dsl_prop.c

index 64c44b991dfd1e448b54f5d1c1d58d0a2cd8cf6c..e44a94853929097e03c1b63cb6bf2f28ca611e66 100644 (file)
@@ -697,7 +697,7 @@ dsl_prop_set_sync(void *arg1, void *arg2, dmu_tx_t *tx)
                if (source == ZPROP_SRC_LOCAL) {
                        valstr = (char *)psa->psa_value;
                } else {
-                       tbuf = kmem_alloc(ZAP_MAXVALUELEN, KM_SLEEP);
+                       tbuf = kmem_alloc(ZAP_MAXVALUELEN, KM_PUSHPAGE);
                        if (dsl_prop_get_ds(ds, propname, 1,
                            ZAP_MAXVALUELEN, tbuf, NULL) == 0)
                                valstr = tbuf;