diff --git a/module/os/linux/spl/spl-kmem-cache.c b/module/os/linux/spl/spl-kmem-cache.c index 3b9518a60..6d496e685 100644 --- a/module/os/linux/spl/spl-kmem-cache.c +++ b/module/os/linux/spl/spl-kmem-cache.c @@ -142,8 +142,6 @@ kv_alloc(spl_kmem_cache_t *skc, int size, int flags) gfp_t lflags = kmem_flags_convert(flags | KM_VMEM); void *ptr; - if (skc->skc_flags & KMC_RECLAIMABLE) - lflags |= __GFP_RECLAIMABLE; ptr = spl_vmalloc(size, lflags); /* Resulting allocated memory will be page aligned */ @@ -424,7 +422,7 @@ spl_emergency_alloc(spl_kmem_cache_t *skc, int flags, void **obj) if (!empty) return (-EEXIST); - if (skc->skc_flags & KMC_RECLAIMABLE) + if (skc->skc_flags & KMC_RECLAIMABLE && !(flags & KM_VMEM)) lflags |= __GFP_RECLAIMABLE; ske = kmalloc(sizeof (*ske), lflags); if (ske == NULL)