link->state = LINK_STATE_LINGER;
- log_debug_link(link, "dropped");
+ log_debug_link(link, "link removed");
link_unref(link);
hashmap_isempty(link->network->macvlans))
return link_enslaved(link);
- if (link->network->bridge) {
+ if (link->network->bond) {
log_struct_link(LOG_DEBUG, link,
"MESSAGE=%s: enslaving by '%s'",
- link->ifname, link->network->bridge->name,
- NETDEV(link->network->bridge),
+ link->ifname, link->network->bond->name,
+ NETDEV(link->network->bond),
NULL);
- r = netdev_enslave(link->network->bridge, link, &enslave_handler);
+ r = netdev_enslave(link->network->bond, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
"MESSAGE=%s: could not enslave by '%s': %s",
- link->ifname, link->network->bridge->name, strerror(-r),
- NETDEV(link->network->bridge),
+ link->ifname, link->network->bond->name, strerror(-r),
+ NETDEV(link->network->bond),
NULL);
link_enter_failed(link);
return r;
link->enslaving ++;
}
- if (link->network->bond) {
+ if (link->network->bridge) {
log_struct_link(LOG_DEBUG, link,
"MESSAGE=%s: enslaving by '%s'",
- link->ifname, link->network->bond->name,
- NETDEV(link->network->bond),
+ link->ifname, link->network->bridge->name,
+ NETDEV(link->network->bridge),
NULL);
- r = netdev_enslave(link->network->bond, link, &enslave_handler);
+ r = netdev_enslave(link->network->bridge, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
"MESSAGE=%s: could not enslave by '%s': %s",
- link->ifname, link->network->bond->name, strerror(-r),
- NETDEV(link->network->bond),
+ link->ifname, link->network->bridge->name, strerror(-r),
+ NETDEV(link->network->bridge),
NULL);
link_enter_failed(link);
return r;
assert(link->ifname);
assert(m);
+ if (link->state == LINK_STATE_LINGER) {
+ link_ref(link);
+ log_info_link(link, "link readded");
+ link->state = LINK_STATE_ENSLAVING;
+ }
+
r = sd_rtnl_message_read_string(m, IFLA_IFNAME, &ifname);
if (r >= 0 && !streq(ifname, link->ifname)) {
log_info_link(link, "renamed to %s", ifname);