@@ -2375,7 +2375,6 @@ static int nbd_genl_status(struct sk_buff *skb, struct genl_info *info)
reply_head = genlmsg_put_reply(reply, info, &nbd_genl_family, 0,
NBD_CMD_STATUS);
if (!reply_head) {
- nlmsg_free(reply);
goto out;
}
@@ -2383,7 +2382,6 @@ static int nbd_genl_status(struct sk_buff *skb, struct genl_info *info)
if (index == -1) {
ret = idr_for_each(&nbd_index_idr, &status_cb, reply);
if (ret) {
- nlmsg_free(reply);
goto out;
}
} else {
@@ -2392,7 +2390,6 @@ static int nbd_genl_status(struct sk_buff *skb, struct genl_info *info)
if (nbd) {
ret = populate_nbd_status(nbd, reply);
if (ret) {
- nlmsg_free(reply);
goto out;
}
}
@@ -2401,6 +2398,8 @@ static int nbd_genl_status(struct sk_buff *skb, struct genl_info *info)
genlmsg_end(reply, reply_head);
ret = genlmsg_reply(reply, info);
out:
+ if (reply)
+ nlmsg_free(reply);
mutex_unlock(&nbd_index_mutex);
return ret;
}
A simple code clean for nbd_genl_status() Signed-off-by: Wu Bo <wubo40@huawei.com> --- drivers/block/nbd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)