freebsd-nq/module/nvpair
Brian Behlendorf 81eaf15107 Register correct handlers in nvlist_alloc()
The non-blocking allocation handlers in nvlist_alloc() would be
mistakenly assigned if any flags other than KM_SLEEP were passed.
This meant that nvlists allocated with KM_PUSHPUSH or other KM_*
debug flags were effectively always using atomic allocations.

While these failures were unlikely it could lead to assertions
because KM_PUSHPAGE allocations in particular are guaranteed to
succeed or block.  They must never fail.

Since the existing API does not allow us to pass allocation
flags to the private allocators the cleanest thing to do is to
add a KM_PUSHPAGE allocator.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes zfsonlinux/spl#249
2013-06-20 09:58:15 -07:00
..
fnvpair.c Illumos #3006 2013-06-19 15:14:10 -07:00
Makefile.in Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
nvpair_alloc_fixed.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
nvpair_alloc_spl.c Register correct handlers in nvlist_alloc() 2013-06-20 09:58:15 -07:00
nvpair.c Register correct handlers in nvlist_alloc() 2013-06-20 09:58:15 -07:00