• Rasmus Villemoes's avatar
    mm: slub: remove dead and buggy code from sysfs_slab_add() · 979857ea
    Rasmus Villemoes authored
    
    
    The function sysfs_slab_add() has two callers:
    
    One is slab_sysfs_init(), which first initializes slab_kset, and only
    when that succeeds sets slab_state to FULL, and then proceeds to call
    sysfs_slab_add() for all previously created slabs.
    
    The other is __kmem_cache_create(), but only after a
    
    	if (slab_state <= UP)
    		return 0;
    
    check.
    
    So in other words, sysfs_slab_add() is never called without
    slab_kset (aka the return value of cache_kset()) being non-NULL.
    
    And this is just as well, because if we ever did take this path and
    called kobject_init(&s->kobj), and then later when called again from
    slab_sysfs_init() would end up calling kobject_init_and_add(), we
    would hit
    
    	if (kobj->state_initialized) {
    		/* do not error out as sometimes we can recover */
    		pr_err("kobject (%p): tried to init an initialized object, something is seriously wrong.\n",
    		dump_stack();
    	}
    
    in kobject.c.
    Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
    Reviewed-by: default avatarHyeonggon Yoo <42.hyeyoo@gmail.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
    979857ea
slub.c 156 KB