X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fnvpair%2Fnvpair_alloc_spl.c;h=be6e8f0a592a606048f1662a7f9c581225a1bba5;hb=802e7b5feb0135483de119eac1da192404eb5bb7;hp=d26d26913d1f7e7a29edfcc5af5fc802bb73a4a8;hpb=c28b227942b421ebdc03c9df9a012642fb517223;p=zfs.git diff --git a/module/nvpair/nvpair_alloc_spl.c b/module/nvpair/nvpair_alloc_spl.c index d26d269..be6e8f0 100644 --- a/module/nvpair/nvpair_alloc_spl.c +++ b/module/nvpair/nvpair_alloc_spl.c @@ -30,7 +30,13 @@ static void * nv_alloc_sleep_spl(nv_alloc_t *nva, size_t size) { - return (kmem_alloc(size, KM_SLEEP)); + return (kmem_alloc(size, KM_SLEEP | KM_NODEBUG)); +} + +static void * +nv_alloc_pushpage_spl(nv_alloc_t *nva, size_t size) +{ + return (kmem_alloc(size, KM_PUSHPAGE | KM_NODEBUG)); } static void * @@ -53,6 +59,14 @@ const nv_alloc_ops_t spl_sleep_ops_def = { NULL /* nv_ao_reset() */ }; +const nv_alloc_ops_t spl_pushpage_ops_def = { + NULL, /* nv_ao_init() */ + NULL, /* nv_ao_fini() */ + nv_alloc_pushpage_spl, /* nv_ao_alloc() */ + nv_free_spl, /* nv_ao_free() */ + NULL /* nv_ao_reset() */ +}; + const nv_alloc_ops_t spl_nosleep_ops_def = { NULL, /* nv_ao_init() */ NULL, /* nv_ao_fini() */ @@ -66,10 +80,16 @@ nv_alloc_t nv_alloc_sleep_def = { NULL }; +nv_alloc_t nv_alloc_pushpage_def = { + &spl_pushpage_ops_def, + NULL +}; + nv_alloc_t nv_alloc_nosleep_def = { &spl_nosleep_ops_def, NULL }; nv_alloc_t *nv_alloc_sleep = &nv_alloc_sleep_def; +nv_alloc_t *nv_alloc_pushpage = &nv_alloc_pushpage_def; nv_alloc_t *nv_alloc_nosleep = &nv_alloc_nosleep_def;