EP_LIST_DEL(&epi->fllink); 
ep_list_del(&epi->fllink); 
void eventpoll_release_file(struct file *file){	struct list_head *lsthead = &file->f_ep_links;	struct eventpoll *ep;	struct epitem *epi;	/*	 * We don't want to get "file->f_ep_lock" because it is not	 * necessary. It is not necessary because we're in the "struct file"	 * cleanup path, and this means that noone is using this file anymore.	 * The only hit might come from ep_free() but by holding the semaphore	 * will correctly serialize the operation. We do need to acquire	 * "ep->sem" after "epsem" because ep_remove() requires it when called	 * from anywhere but ep_free().	 */	down(&epsem);	while (!list_empty(lsthead)) {		epi = list_entry(lsthead->next, struct epitem, fllink);		ep = epi->ep;		EP_LIST_DEL(&epi->fllink);		down_write(&ep->sem);		ep_remove(ep, epi);		up_write(&ep->sem);	}	up(&epsem);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b030a4dd609e167da7f73c2d1fa5af864a0aea17/eventpoll.c/clean/fs/eventpoll.c