summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMassimo Maggi <[email protected]>2012-10-11 16:19:48 -0700
committerBrian Behlendorf <[email protected]>2012-10-11 16:22:29 -0700
commitdea3505dff1252b337eb1cb8744626fb0f796d86 (patch)
treef8e3339f250ba64467b1205c30b491ca31d7ebd1
parentbbdc6ae49518a4be7230ab673370e9231e2f72e7 (diff)
Switch KM_SLEEP to KM_PUSHPAGE
In this particular instance the allocation occurred in the context of sys_msync()->...->zpl_putpage() where we must be careful not to initiate additional I/O. Signed-off-by: Massimo Maggi <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]>
-rw-r--r--module/spl/spl-tsd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/module/spl/spl-tsd.c b/module/spl/spl-tsd.c
index b43da7746..f5c579578 100644
--- a/module/spl/spl-tsd.c
+++ b/module/spl/spl-tsd.c
@@ -174,7 +174,7 @@ tsd_hash_add(tsd_hash_table_t *table, uint_t key, pid_t pid, void *value)
ASSERT3P(tsd_hash_search(table, key, pid), ==, NULL);
/* New entry allocate structure, set value, and add to hash */
- entry = kmem_alloc(sizeof(tsd_hash_entry_t), KM_SLEEP);
+ entry = kmem_alloc(sizeof(tsd_hash_entry_t), KM_PUSHPAGE);
if (entry == NULL)
SRETURN(ENOMEM);
@@ -234,7 +234,7 @@ tsd_hash_add_key(tsd_hash_table_t *table, uint_t *keyp, dtor_func_t dtor)
ASSERT3P(table, !=, NULL);
/* Allocate entry to be used as a destructor for this key */
- entry = kmem_alloc(sizeof(tsd_hash_entry_t), KM_SLEEP);
+ entry = kmem_alloc(sizeof(tsd_hash_entry_t), KM_PUSHPAGE);
if (entry == NULL)
SRETURN(ENOMEM);
@@ -293,7 +293,7 @@ tsd_hash_add_pid(tsd_hash_table_t *table, pid_t pid)
SENTRY;
/* Allocate entry to be used as the process reference */
- entry = kmem_alloc(sizeof(tsd_hash_entry_t), KM_SLEEP);
+ entry = kmem_alloc(sizeof(tsd_hash_entry_t), KM_PUSHPAGE);
if (entry == NULL)
SRETURN(ENOMEM);