summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipc/msg.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ipc/msg.c b/ipc/msg.c
index 10094a731b8e..cd90bfde89a4 100644
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -132,7 +132,7 @@ static struct msg_queue *msg_alloc(void)
132static int newque(struct ipc_namespace *ns, struct ipc_params *params) 132static int newque(struct ipc_namespace *ns, struct ipc_params *params)
133{ 133{
134 struct msg_queue *msq; 134 struct msg_queue *msq;
135 int id, retval; 135 int retval;
136 key_t key = params->key; 136 key_t key = params->key;
137 int msgflg = params->flg; 137 int msgflg = params->flg;
138 138
@@ -160,10 +160,10 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
160 INIT_LIST_HEAD(&msq->q_senders); 160 INIT_LIST_HEAD(&msq->q_senders);
161 161
162 /* ipc_addid() locks msq upon success. */ 162 /* ipc_addid() locks msq upon success. */
163 id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); 163 retval = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni);
164 if (id < 0) { 164 if (retval < 0) {
165 ipc_rcu_putref(&msq->q_perm, msg_rcu_free); 165 call_rcu(&msq->q_perm.rcu, msg_rcu_free);
166 return id; 166 return retval;
167 } 167 }
168 168
169 ipc_unlock_object(&msq->q_perm); 169 ipc_unlock_object(&msq->q_perm);