list3_data(cachep)->free_objects += cachep->num; spin_unlock(&cachep->spinlock); 
l3->free_objects += cachep->num; spin_unlock(&l3->list_lock); 
static int cache_grow(kmem_cache_t *cachep, unsigned int __nocast flags, int nodeid){	struct slab	*slabp;	void		*objp;	size_t		 offset;	unsigned int	 local_flags;	unsigned long	 ctor_flags;	/* Be lazy and only check for valid flags here, 	 * keeping it out of the critical path in kmem_cache_alloc().	 */	if (flags & ~(SLAB_DMA|SLAB_LEVEL_MASK|SLAB_NO_GROW))		BUG();	if (flags & SLAB_NO_GROW)		return 0;	ctor_flags = SLAB_CTOR_CONSTRUCTOR;	local_flags = (flags & SLAB_LEVEL_MASK);	if (!(local_flags & __GFP_WAIT))		/*		 * Not allowed to sleep.  Need to tell a constructor about		 * this - it might need to know...		 */		ctor_flags |= SLAB_CTOR_ATOMIC;	/* About to mess with non-constant members - lock. */	check_irq_off();	spin_lock(&cachep->spinlock);	/* Get colour for the slab, and cal the next value. */	offset = cachep->colour_next;	cachep->colour_next++;	if (cachep->colour_next >= cachep->colour)		cachep->colour_next = 0;	offset *= cachep->colour_off;	spin_unlock(&cachep->spinlock);	if (local_flags & __GFP_WAIT)		local_irq_enable();	/*	 * The test for missing atomic flag is performed here, rather than	 * the more obvious place, simply to reduce the critical path length	 * in kmem_cache_alloc(). If a caller is seriously mis-behaving they	 * will eventually be caught here (where it matters).	 */	kmem_flagcheck(cachep, flags);	/* Get mem for the objs. */	if (!(objp = kmem_getpages(cachep, flags, nodeid)))		goto failed;	/* Get slab management. */	if (!(slabp = alloc_slabmgmt(cachep, objp, offset, local_flags)))		goto opps1;	set_slab_attr(cachep, slabp, objp);	cache_init_objs(cachep, slabp, ctor_flags);	if (local_flags & __GFP_WAIT)		local_irq_disable();	check_irq_off();	spin_lock(&cachep->spinlock);	/* Make slab active. */	list_add_tail(&slabp->list, &(list3_data(cachep)->slabs_free));	STATS_INC_GROWN(cachep);	list3_data(cachep)->free_objects += cachep->num;	spin_unlock(&cachep->spinlock);	return 1;opps1:	kmem_freepages(cachep, objp);failed:	if (local_flags & __GFP_WAIT)		local_irq_disable();	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e498be7dafd72fd68848c1eef1575aa7c5d658df/slab.c/clean/mm/slab.c