Follow common recommendations to avoid error propagation. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> --- net/tap-linux.c | 5 ++++- net/tap.c | 4 +--- net/tap_int.h | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/net/tap-linux.c b/net/tap-linux.c index 22ec2f45d2..3625379c58 100644 --- a/net/tap-linux.c +++ b/net/tap-linux.c @@ -140,7 +140,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, */ #define TAP_DEFAULT_SNDBUF 0 -void tap_set_sndbuf(int fd, const NetdevTapOptions *tap, Error **errp) +int tap_set_sndbuf(int fd, const NetdevTapOptions *tap, Error **errp) { int sndbuf; @@ -154,7 +154,10 @@ void tap_set_sndbuf(int fd, const NetdevTapOptions *tap, Error **errp) if (ioctl(fd, TUNSETSNDBUF, &sndbuf) == -1 && tap->has_sndbuf) { error_setg_errno(errp, errno, "TUNSETSNDBUF ioctl failed"); + return -1; } + + return 0; } int tap_probe_vnet_hdr(int fd, Error **errp) diff --git a/net/tap.c b/net/tap.c index ba2731ee8a..0258ac8574 100644 --- a/net/tap.c +++ b/net/tap.c @@ -702,9 +702,7 @@ static int net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer, TAPState *s = net_tap_fd_init(peer, model, name, fd, vnet_hdr); int vhostfd; - tap_set_sndbuf(s->fd, tap, &err); - if (err) { - error_propagate(errp, err); + if (tap_set_sndbuf(s->fd, tap, errp) < 0) { goto failed; } diff --git a/net/tap_int.h b/net/tap_int.h index 8857ff299d..d21acf8486 100644 --- a/net/tap_int.h +++ b/net/tap_int.h @@ -33,7 +33,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen); -void tap_set_sndbuf(int fd, const NetdevTapOptions *tap, Error **errp); +int tap_set_sndbuf(int fd, const NetdevTapOptions *tap, Error **errp); int tap_probe_vnet_hdr(int fd, Error **errp); int tap_probe_has_ufo(int fd); int tap_probe_has_uso(int fd); -- 2.48.1