diff options
Diffstat (limited to 'ipc/sem.c')
| -rw-r--r-- | ipc/sem.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/ipc/sem.c b/ipc/sem.c index 6693daf4fe11..0dbdb98fdf2d 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -1964,6 +1964,7 @@ static struct sem_undo *find_alloc_undo(struct ipc_namespace *ns, int semid)  	 */  	un = lookup_undo(ulp, semid);  	if (un) { +		spin_unlock(&ulp->lock);  		kvfree(new);  		goto success;  	} @@ -1976,9 +1977,8 @@ static struct sem_undo *find_alloc_undo(struct ipc_namespace *ns, int semid)  	ipc_assert_locked_object(&sma->sem_perm);  	list_add(&new->list_id, &sma->list_id);  	un = new; - -success:  	spin_unlock(&ulp->lock); +success:  	sem_unlock(sma, -1);  out:  	return un;  |