diff options
Diffstat (limited to 'ipc/msg.c')
| -rw-r--r-- | ipc/msg.c | 7 |
1 files changed, 3 insertions, 4 deletions
| @@ -199,9 +199,7 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params) | |||
| 199 | return retval; | 199 | return retval; |
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | /* | 202 | /* ipc_addid() locks msq upon success. */ |
| 203 | * ipc_addid() locks msq | ||
| 204 | */ | ||
| 205 | id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); | 203 | id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); |
| 206 | if (id < 0) { | 204 | if (id < 0) { |
| 207 | security_msg_queue_free(msq); | 205 | security_msg_queue_free(msq); |
| @@ -218,7 +216,8 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params) | |||
| 218 | INIT_LIST_HEAD(&msq->q_receivers); | 216 | INIT_LIST_HEAD(&msq->q_receivers); |
| 219 | INIT_LIST_HEAD(&msq->q_senders); | 217 | INIT_LIST_HEAD(&msq->q_senders); |
| 220 | 218 | ||
| 221 | msg_unlock(msq); | 219 | spin_unlock(&msq->q_perm.lock); |
| 220 | rcu_read_unlock(); | ||
| 222 | 221 | ||
| 223 | return msq->q_perm.id; | 222 | return msq->q_perm.id; |
| 224 | } | 223 | } |
