ipc: introduce obtaining a lockless ipc object
authorDavidlohr Bueso <davidlohr.bueso@hp.com>
Wed, 1 May 2013 02:15:19 +0000 (19:15 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 May 2013 15:12:57 +0000 (08:12 -0700)
commit4d2bff5eb86e8d7b4a20934cccb93bdeebed3558
tree3667eec32ddcf8686335f64db553613c319f0625
parent7bb4deff61bdab3338534841cb6d0508314a41d6
ipc: introduce obtaining a lockless ipc object

Through ipc_lock() and therefore ipc_lock_check() we currently return the
locked ipc object.  This is not necessary for all situations and can,
therefore, cause unnecessary ipc lock contention.

Introduce analogous ipc_obtain_object() and ipc_obtain_object_check()
functions that only lookup and return the ipc object.

Both these functions must be called within the RCU read critical section.

[akpm@linux-foundation.org: propagate the ipc_obtain_object() errno from ipc_lock()]
Signed-off-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Signed-off-by: Rik van Riel <riel@redhat.com>
Reviewed-by: Chegu Vinod <chegu_vinod@hp.com>
Acked-by: Michel Lespinasse <walken@google.com>
Cc: Emmanuel Benisty <benisty.e@gmail.com>
Cc: Jason Low <jason.low2@hp.com>
Cc: Peter Hurley <peter@hurleysoftware.com>
Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ipc/util.c
ipc/util.h