memmove(&ac_entry(ac)[0], &ac_entry(ac)[batchcount], 
memmove(ac->entry, &(ac->entry[batchcount]), 
static void cache_flusharray(kmem_cache_t *cachep, struct array_cache *ac){	int batchcount;	batchcount = ac->batchcount;#if DEBUG	BUG_ON(!batchcount || batchcount > ac->avail);#endif	check_irq_off();	spin_lock(&cachep->spinlock);	if (cachep->lists.shared) {		struct array_cache *shared_array = cachep->lists.shared;		int max = shared_array->limit-shared_array->avail;		if (max) {			if (batchcount > max)				batchcount = max;			memcpy(&ac_entry(shared_array)[shared_array->avail],					&ac_entry(ac)[0],					sizeof(void*)*batchcount);			shared_array->avail += batchcount;			goto free_done;		}	}	free_block(cachep, &ac_entry(ac)[0], batchcount);free_done:#if STATS	{		int i = 0;		struct list_head *p;		p = list3_data(cachep)->slabs_free.next;		while (p != &(list3_data(cachep)->slabs_free)) {			struct slab *slabp;			slabp = list_entry(p, struct slab, list);			BUG_ON(slabp->inuse);			i++;			p = p->next;		}		STATS_SET_FREEABLE(cachep, i);	}#endif	spin_unlock(&cachep->spinlock);	ac->avail -= batchcount;	memmove(&ac_entry(ac)[0], &ac_entry(ac)[batchcount],			sizeof(void*)*ac->avail);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e498be7dafd72fd68848c1eef1575aa7c5d658df/slab.c/clean/mm/slab.c