Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Linux: Never sleep in kmem_cache_alloc(..., KM_NOSLEEP)
When a kmem cache is exhausted and needed to be expanded a new slab is allocated. KM_SLEEP callers can block and wait for the allocation, but KM_NOSLEEP callers were incorrectly allowed to block as well. Resolve this by attempting an emergency allocation as a best effort. This may fail but that's fine since any KM_NOSLEEP consumer is required to handle an allocation failure. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
- Loading branch information