ipcctl_pre_down_nolock — retrieve an ipc and check permissions for some IPC_XXX cmd
struct kern_ipc_perm * ipcctl_pre_down_nolock ( | struct ipc_namespace * ns, |
| struct ipc_ids * ids, | |
| int id, | |
| int cmd, | |
| struct ipc64_perm * perm, | |
int extra_perm); |
nsipc namespace
idsthe table of ids where to look for the ipc
idthe id of the ipc to retrieve
cmdthe cmd to check
permthe permission to set
extra_permone extra permission parameter used by msq
This function does some common audit and permissions check for some IPC_XXX cmd and is called from semctl_down, shmctl_down and msgctl_down. It must be called without any lock held and - retrieves the ipc with the given id in the given table. - performs some audit and permission check, depending on the given cmd - returns a pointer to the ipc object or otherwise, the corresponding error.
Call holding the both the rwsem and the rcu read lock.