• V
    mm, slub: move reset of c->page and freelist out of deactivate_slab() · a019d201
    Vlastimil Babka 提交于
    deactivate_slab() removes the cpu slab by merging the cpu freelist with slab's
    freelist and putting the slab on the proper node's list. It also sets the
    respective kmem_cache_cpu pointers to NULL.
    
    By extracting the kmem_cache_cpu operations from the function, we can make it
    not dependent on disabled irqs.
    
    Also if we return a single free pointer from ___slab_alloc, we no longer have
    to assign kmem_cache_cpu.page before deactivation or care if somebody preempted
    us and assigned a different page to our kmem_cache_cpu in the process.
    Signed-off-by: NVlastimil Babka <vbabka@suse.cz>
    a019d201
slub.c 146.1 KB