- /* step 3: Acquire the lock on the undo list pointer */
- spin_lock(&ulp->lock);
-
- /* step 4: check for races: someone else allocated the undo struct,
- * semaphore array was destroyed.
- */
- un = lookup_undo(ulp, semid);
- if (un) {
- spin_unlock(&ulp->lock);
- kfree(new);
- sem_putref(sma);
- goto out;
- }