]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Switch allocations from KM_SLEEP to KM_PUSHPAGE
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 5 Nov 2013 18:32:39 +0000 (10:32 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 5 Nov 2013 20:26:14 +0000 (12:26 -0800)
commit2517c8ee08ef21ba112c00a94070302cdca04a58
tree012af4b6f66046a54d450ebbdba67b5a244b0f30
parent1ca546b33888b8f4c7e737faf8f038732926fd6e
Switch allocations from KM_SLEEP to KM_PUSHPAGE

A couple of kmem_alloc() allocations were using KM_SLEEP in
the sync thread context.  These were accidentally introduced
by the recent set of Illumos patches.  The solution is to
switch to KM_PUSHPAGE.

dsl_dataset_promote_sync() -> promote_hold() -> snaplist_make() ->
kmem_alloc(sizeof (*snap), KM_SLEEP);

dsl_dataset_user_hold_sync() -> dsl_onexit_hold_cleanup() ->
kmem_alloc(sizeof (*ca), KM_SLEEP)

Signed-off-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1775
module/zfs/dsl_dataset.c
module/zfs/dsl_userhold.c