/* don't initialize unodhd->lock here.  It's done * in copy_semundo() instead. */ 
spin_lock_init(&undo_list->lock); 
static inline int get_undo_list(struct sem_undo_list **undo_listp){	struct sem_undo_list *undo_list;	int size;	undo_list = current->sysvsem.undo_list;	if (!undo_list) {		size = sizeof(struct sem_undo_list);		undo_list = (struct sem_undo_list *) kmalloc(size, GFP_KERNEL);		if (undo_list == NULL)			return -ENOMEM;		memset(undo_list, 0, size);		/* don't initialize unodhd->lock here.  It's done		 * in copy_semundo() instead.		 */		atomic_set(&undo_list->refcnt, 1);		current->sysvsem.undo_list = undo_list;	}	*undo_listp = undo_list;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/00a5dfdb93f74e4d95fb0d83c890728e331f8810/sem.c/clean/ipc/sem.c