Commit 4a6ed332 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

netlink: return errno from do_rtnl_req

Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 421ceffa
......@@ -34,7 +34,7 @@ static int nlmsg_receive(char *buf, int len, int (*cb)(struct nlmsghdr *, void *
if (*len < 0) {
pr_err("ERROR %d reported by netlink (%s)\n",
*len, strerror(-*len));
return -1;
return *len;
}
return 0;
......@@ -51,7 +51,7 @@ static int nlmsg_receive(char *buf, int len, int (*cb)(struct nlmsghdr *, void *
return 0;
pr_err("ERROR %d reported by netlink\n", err->error);
return -1;
return err->error;
}
if (cb(hdr, arg))
return -1;
......@@ -67,6 +67,7 @@ int do_rtnl_req(int nl, void *req, int size,
struct sockaddr_nl nladdr;
struct iovec iov;
static char buf[4096];
int err;
memset(&msg, 0, sizeof(msg));
msg.msg_name = &nladdr;
......@@ -81,6 +82,7 @@ int do_rtnl_req(int nl, void *req, int size,
iov.iov_len = size;
if (sendmsg(nl, &msg, 0) < 0) {
err = -errno;
pr_perror("Can't send request message");
goto err;
}
......@@ -89,7 +91,6 @@ int do_rtnl_req(int nl, void *req, int size,
iov.iov_len = sizeof(buf);
while (1) {
int err;
memset(&msg, 0, sizeof(msg));
msg.msg_name = &nladdr;
......@@ -102,6 +103,7 @@ int do_rtnl_req(int nl, void *req, int size,
if (errno == EINTR)
continue;
else {
err = -errno;
pr_perror("Error receiving nl report");
goto err;
}
......@@ -119,7 +121,7 @@ int do_rtnl_req(int nl, void *req, int size,
return 0;
err:
return -1;
return err;
}
int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment