Lines Matching refs:ulp
125 struct sem_undo_list *ulp; /* back ptr to sem_undo_list */ member
1099 spin_lock(&un->ulp->lock); in freeary()
1102 spin_unlock(&un->ulp->lock); in freeary()
1652 static struct sem_undo *__lookup_undo(struct sem_undo_list *ulp, int semid) in __lookup_undo() argument
1656 list_for_each_entry_rcu(un, &ulp->list_proc, list_proc) { in __lookup_undo()
1663 static struct sem_undo *lookup_undo(struct sem_undo_list *ulp, int semid) in lookup_undo() argument
1667 assert_spin_locked(&ulp->lock); in lookup_undo()
1669 un = __lookup_undo(ulp, semid); in lookup_undo()
1672 list_add_rcu(&un->list_proc, &ulp->list_proc); in lookup_undo()
1691 struct sem_undo_list *ulp; in find_alloc_undo() local
1695 error = get_undo_list(&ulp); in find_alloc_undo()
1700 spin_lock(&ulp->lock); in find_alloc_undo()
1701 un = lookup_undo(ulp, semid); in find_alloc_undo()
1702 spin_unlock(&ulp->lock); in find_alloc_undo()
1739 spin_lock(&ulp->lock); in find_alloc_undo()
1744 un = lookup_undo(ulp, semid); in find_alloc_undo()
1751 new->ulp = ulp; in find_alloc_undo()
1753 assert_spin_locked(&ulp->lock); in find_alloc_undo()
1754 list_add_rcu(&new->list_proc, &ulp->list_proc); in find_alloc_undo()
1760 spin_unlock(&ulp->lock); in find_alloc_undo()
2068 struct sem_undo_list *ulp; in exit_sem() local
2070 ulp = tsk->sysvsem.undo_list; in exit_sem()
2071 if (!ulp) in exit_sem()
2075 if (!atomic_dec_and_test(&ulp->refcnt)) in exit_sem()
2085 un = list_entry_rcu(ulp->list_proc.next, in exit_sem()
2087 if (&un->list_proc == &ulp->list_proc) { in exit_sem()
2094 spin_unlock_wait(&ulp->lock); in exit_sem()
2098 spin_lock(&ulp->lock); in exit_sem()
2100 spin_unlock(&ulp->lock); in exit_sem()
2122 un = __lookup_undo(ulp, semid); in exit_sem()
2136 spin_lock(&ulp->lock); in exit_sem()
2138 spin_unlock(&ulp->lock); in exit_sem()
2174 kfree(ulp); in exit_sem()