while (pool->curr_nr) {
void *element = remove_element(pool);
pool->free(element, pool->pool_data);
while (pool->curr_nr) {
void *element = remove_element(pool);
pool->free(element, pool->pool_data);
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_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 */
* alloc failed with that and @pool was empty, retry immediately.
*/
if (gfp_temp != gfp_mask) {
* alloc failed with that and @pool was empty, retry immediately.
*/
if (gfp_temp != gfp_mask) {