element = pool->alloc(gfp_nowait, pool->pool_data); 
 element = pool->alloc(gfp_temp, pool->pool_data); 
void * mempool_alloc(mempool_t *pool, unsigned int __nocast gfp_mask){	void *element;	unsigned long flags;	DEFINE_WAIT(wait);	int gfp_nowait;	gfp_mask |= __GFP_NOMEMALLOC;	/* don't allocate emergency reserves */	gfp_mask |= __GFP_NORETRY;	/* don't loop in __alloc_pages */	gfp_mask |= __GFP_NOWARN;	/* failures are OK */	gfp_nowait = gfp_mask & ~(__GFP_WAIT | __GFP_IO);	might_sleep_if(gfp_mask & __GFP_WAIT);repeat_alloc:	element = pool->alloc(gfp_nowait, pool->pool_data);	if (likely(element != NULL))		return element;	/*	 * If the pool is less than 50% full and we can perform effective	 * page reclaim then try harder to allocate an element.	 */	mb();	if ((gfp_mask & __GFP_FS) && (gfp_mask != gfp_nowait) &&				(pool->curr_nr <= pool->min_nr/2)) {		element = pool->alloc(gfp_mask, pool->pool_data);		if (likely(element != NULL))			return element;	}	/*	 * Kick the VM at this point.	 */	wakeup_bdflush(0);	spin_lock_irqsave(&pool->lock, flags);	if (likely(pool->curr_nr)) {		element = remove_element(pool);		spin_unlock_irqrestore(&pool->lock, flags);		return element;	}	spin_unlock_irqrestore(&pool->lock, flags);	/* We must not sleep in the GFP_ATOMIC case */	if (!(gfp_mask & __GFP_WAIT))		return NULL;	prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE);	mb();	if (!pool->curr_nr)		io_schedule();	finish_wait(&pool->wait, &wait);	goto repeat_alloc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/20a77776c24800d1e40a73f520cfcb32239568a9/mempool.c/buggy/mm/mempool.c