]> git.proxmox.com Git - mirror_spl-debian.git/commitdiff
Reduce max kmem based slab size
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 18 Mar 2010 20:39:51 +0000 (13:39 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 18 Mar 2010 20:39:51 +0000 (13:39 -0700)
Allowing MAX_ORDER-1 sized allocations for kmem based slabs have
been observed to result in deadlocks.  To help prvent this limit
max kmem based slab size to MAX_ORDER-3.  Just for the record
callers should not be creating slabs like this, but if they do
we should still handle it as safely as we can.

module/spl/spl-kmem.c

index f87d2b55ab46c06f5db084ccb5ef515b47579c99..d62a6f61bee5c8f65e8ddbd41d689e5ce5824b59 100644 (file)
@@ -1057,7 +1057,7 @@ spl_slab_size(spl_kmem_cache_t *skc, uint32_t *objs, uint32_t *size)
                obj_size = spl_obj_size(skc);
 
                if (skc->skc_flags & KMC_KMEM)
-                       max_size = ((uint32_t)1 << (MAX_ORDER-1)) * PAGE_SIZE;
+                       max_size = ((uint32_t)1 << (MAX_ORDER-3)) * PAGE_SIZE;
                else
                        max_size = (32 * 1024 * 1024);