diff options
-rw-r--r-- | src/network/networkd-link.c | 6 | ||||
-rw-r--r-- | src/network/networkd-manager.c | 15 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index f0fb0d93e6..889efc8c2f 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -102,13 +102,11 @@ int link_add(Manager *m, struct udev_device *device) { ifindex = udev_device_get_ifindex(device); link = hashmap_get(m->links, &ifindex); if (link) - return 0; + return -EEXIST; r = link_new(m, device, &link); - if (r < 0) { - log_error("Could not create link: %s", strerror(-r)); + if (r < 0) return r; - } devtype = udev_device_get_devtype(device); if (streq_ptr(devtype, "bridge")) { diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index e9944973ad..11c3efe901 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -143,14 +143,17 @@ static int manager_process_link(Manager *m, struct udev_device *device) { link_free(link); } else { - log_debug("%s: link added", udev_device_get_sysname(device)); - r = link_add(m, device); if (r < 0) { - log_error("Could not handle link %s: %s", - udev_device_get_sysname(device), - strerror(-r)); - } + if (r == -EEXIST) + log_debug("%s: link already exists, ignoring", + udev_device_get_sysname(device)); + else + log_error("%s: could not handle link: %s", + udev_device_get_sysname(device), + strerror(-r)); + } else + log_debug("%s: link added", udev_device_get_sysname(device)); } return 0; |