diff options
-rw-r--r-- | ipc/msg.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -132,7 +132,7 @@ static struct msg_queue *msg_alloc(void) | |||
132 | static int newque(struct ipc_namespace *ns, struct ipc_params *params) | 132 | static 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); |