mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Add KMC_NOEMERGENCY slab flag
Provide a flag to disable the use of emergency objects for a specific kmem cache. There may be instances where under no circumstances should you kmalloc() an emergency object. For example, when you cache contains very large objects (>128k). Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
@@ -1727,8 +1727,13 @@ spl_cache_grow(spl_kmem_cache_t *skc, int flags, void **obj)
|
||||
*/
|
||||
remaining = wait_event_timeout(skc->skc_waitq,
|
||||
spl_cache_grow_wait(skc), 1);
|
||||
if (remaining == 0)
|
||||
rc = spl_emergency_alloc(skc, flags, obj);
|
||||
|
||||
if (remaining == 0) {
|
||||
if (test_bit(KMC_BIT_NOEMERGENCY, &skc->skc_flags))
|
||||
rc = -ENOMEM;
|
||||
else
|
||||
rc = spl_emergency_alloc(skc, flags, obj);
|
||||
}
|
||||
|
||||
SRETURN(rc);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user