Switch KM_SLEEP to KM_PUSHPAGE

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 b8d06fca08
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
This commit is contained in:
Brian Behlendorf 2012-09-17 11:22:23 -07:00
parent 49d39798f2
commit ba367276d8

View File

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