ipc: sem_putref() does not need the semaphore lock any more
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 3 May 2013 22:22:00 +0000 (15:22 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 May 2013 18:24:21 +0000 (11:24 -0700)
ipc_rcu_putref() uses atomics for the refcount, and the games to lock
and unlock the semaphore just to try to keep the reference counting
working are no longer useful.

Acked-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ipc/sem.c

index 4b4139f6ad5c83e07a538436f0cc0100e462f061..5cf7b4c093b3092b6038437f4546f836173f3611 100644 (file)
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -329,9 +329,7 @@ static inline void sem_lock_and_putref(struct sem_array *sma)
 
 static inline void sem_putref(struct sem_array *sma)
 {
-       sem_lock_and_putref(sma);
-       sem_unlock(sma, -1);
-       rcu_read_unlock();
+       ipc_rcu_putref(sma);
 }
 
 static inline void sem_rmid(struct ipc_namespace *ns, struct sem_array *s)