From: Yu Watanabe Date: Wed, 25 Aug 2021 16:05:11 +0000 (+0900) Subject: network/netdev: append IFLA_INFO_DATA attribute only when it is necessary X-Git-Tag: v250-rc1~746^2~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6771b85d9817f12ab859b2ebf1c5e104633d88a4;p=thirdparty%2Fsystemd.git network/netdev: append IFLA_INFO_DATA attribute only when it is necessary --- diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index 426be8c7fc7..ce14d521862 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -515,19 +515,23 @@ static int netdev_create(NetDev *netdev, Link *link, link_netlink_message_handle if (r < 0) return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m"); - r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, netdev_kind_to_string(netdev->kind)); - if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); - if (NETDEV_VTABLE(netdev)->fill_message_create) { + r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, netdev_kind_to_string(netdev->kind)); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + r = NETDEV_VTABLE(netdev)->fill_message_create(netdev, link, m); if (r < 0) return r; - } - r = sd_netlink_message_close_container(m); - if (r < 0) - return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + r = sd_netlink_message_close_container(m); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m"); + } else { + r = sd_netlink_message_append_string(m, IFLA_INFO_KIND, netdev_kind_to_string(netdev->kind)); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_KIND attribute: %m"); + } r = sd_netlink_message_close_container(m); if (r < 0)