Lines Matching refs:undo

253 sem_undo_add(short val, ushort_t num, struct sem_undo *undo)  in sem_undo_add()  argument
255 int newval = undo->un_aoe[num] - val; in sem_undo_add()
259 undo->un_aoe[num] = newval; in sem_undo_add()
272 struct sem_undo *undo; in sem_undo_clear() local
278 for (undo = list_head(&sp->sem_undos); undo; in sem_undo_clear()
279 undo = list_next(&sp->sem_undos, undo)) in sem_undo_clear()
281 undo->un_aoe[i] = 0; in sem_undo_clear()
288 sem_rollback(ksemid_t *sp, struct sembuf *op, int n, struct sem_undo *undo) in sem_rollback() argument
298 ASSERT(undo != NULL); in sem_rollback()
299 (void) sem_undo_add(-op->sem_op, op->sem_num, undo); in sem_rollback()
309 struct sem_undo *undo; in sem_rmid() local
314 while (undo = list_head(&sp->sem_undos)) { in sem_rmid()
315 list_remove(&sp->sem_undos, undo); in sem_rmid()
316 mutex_enter(&undo->un_proc->p_lock); in sem_rmid()
317 if (undo->un_proc->p_semacct == NULL) { in sem_rmid()
318 mutex_exit(&undo->un_proc->p_lock); in sem_rmid()
321 avl_remove(undo->un_proc->p_semacct, undo); in sem_rmid()
322 mutex_exit(&undo->un_proc->p_lock); in sem_rmid()
323 kmem_free(undo, size); in sem_rmid()
610 struct sem_undo *undo; in semexit() local
618 while (undo = avl_destroy_nodes(tree, &cookie)) { in semexit()
619 ksemid_t *sp = undo->un_sp; in semexit()
626 int adj = undo->un_aoe[i]; in semexit()
640 list_remove(&sp->sem_undos, undo); in semexit()
643 kmem_free(undo, size); in semexit()
810 struct sem_undo *undo; in sem_undo_alloc() local
817 undo = kmem_zalloc(size, KM_SLEEP); in sem_undo_alloc()
818 undo->un_proc = pp; in sem_undo_alloc()
819 undo->un_sp = sp; in sem_undo_alloc()
826 kmem_free(undo, size); in sem_undo_alloc()
846 kmem_free(undo, size); in sem_undo_alloc()
848 *un = undo; in sem_undo_alloc()
849 avl_insert(pp->p_semacct, undo, where); in sem_undo_alloc()
851 list_insert_head(&sp->sem_undos, undo); in sem_undo_alloc()
876 struct sem_undo *undo; in semop() local
995 undo = avl_find(pp->p_semacct, &template, NULL); in semop()
997 undo = NULL; in semop()
999 if (undo == NULL) { in semop()
1005 &undo)) in semop()
1031 undo)))) { in semop()
1033 sem_rollback(sp, uops, i, undo); in semop()
1061 op->sem_num, undo))) { in semop()
1063 sem_rollback(sp, uops, i, undo); in semop()
1072 sem_rollback(sp, uops, i, undo); in semop()
1119 sem_rollback(sp, uops, i, undo); in semop()