Updated from Linux LTS 3.10.21 to 3.10.22
This commit is contained in:
27
ipc/util.c
27
ipc/util.c
@@ -17,12 +17,27 @@
|
||||
* Pavel Emelianov <xemul@openvz.org>
|
||||
*
|
||||
* General sysv ipc locking scheme:
|
||||
* when doing ipc id lookups, take the ids->rwsem
|
||||
* rcu_read_lock()
|
||||
* obtain the ipc object (kern_ipc_perm)
|
||||
* perform security, capabilities, auditing and permission checks, etc.
|
||||
* acquire the ipc lock (kern_ipc_perm.lock) throught ipc_lock_object()
|
||||
* perform data updates (ie: SET, RMID, LOCK/UNLOCK commands)
|
||||
* rcu_read_lock()
|
||||
* obtain the ipc object (kern_ipc_perm) by looking up the id in an idr
|
||||
* tree.
|
||||
* - perform initial checks (capabilities, auditing and permission,
|
||||
* etc).
|
||||
* - perform read-only operations, such as STAT, INFO commands.
|
||||
* acquire the ipc lock (kern_ipc_perm.lock) through
|
||||
* ipc_lock_object()
|
||||
* - perform data updates, such as SET, RMID commands and
|
||||
* mechanism-specific operations (semop/semtimedop,
|
||||
* msgsnd/msgrcv, shmat/shmdt).
|
||||
* drop the ipc lock, through ipc_unlock_object().
|
||||
* rcu_read_unlock()
|
||||
*
|
||||
* The ids->rwsem must be taken when:
|
||||
* - creating, removing and iterating the existing entries in ipc
|
||||
* identifier sets.
|
||||
* - iterating through files under /proc/sysvipc/
|
||||
*
|
||||
* Note that sems have a special fast path that avoids kern_ipc_perm.lock -
|
||||
* see sem_lock().
|
||||
*/
|
||||
|
||||
#include <linux/mm.h>
|
||||
|
||||
Reference in New Issue
Block a user