Hello community, here is the log from the commit of package wicked for openSUSE:Factory checked in at 2017-12-29 00:01:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wicked (Old) and /work/SRC/openSUSE:Factory/.wicked.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wicked" Fri Dec 29 00:01:26 2017 rev:65 rq:559071 version:0.6.43 Changes: -------- --- /work/SRC/openSUSE:Factory/wicked/wicked.changes 2017-12-19 10:42:52.048058869 +0100 +++ /work/SRC/openSUSE:Factory/.wicked.new/wicked.changes 2017-12-29 00:01:31.248805368 +0100 @@ -1,0 +2,8 @@ +Thu Dec 21 11:49:14 UTC 2017 - [email protected] + +- wickedd: clear master references on slaves when a master gets + deleted and the deletion event arrives before unenslave event + to avoid a bridge reenslave failure on restart (bsc#1061051). + [+ 0001-wickedd-explicitly-unbind-slaves-on-deletion.patch] + +------------------------------------------------------------------- New: ---- 0001-wickedd-explicitly-unbind-slaves-on-deletion.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wicked.spec ++++++ --- /var/tmp/diff_new_pack.D2GjLZ/_old 2017-12-29 00:01:34.127980107 +0100 +++ /var/tmp/diff_new_pack.D2GjLZ/_new 2017-12-29 00:01:34.127980107 +0100 @@ -26,6 +26,7 @@ Url: https://github.com/openSUSE/wicked Source0: %{name}-%{version}.tar.bz2 Source1: wicked-rpmlintrc +Patch1: 0001-wickedd-explicitly-unbind-slaves-on-deletion.patch # # Upstream First - openSUSE Build Service Policy: # @@ -172,6 +173,7 @@ %prep %setup +%patch1 -p1 %build test -x ./configure || autoreconf --force --install ++++++ 0001-wickedd-explicitly-unbind-slaves-on-deletion.patch ++++++ >From b1864c1fcbedfd49ff55fb82b528ac86b0825317 Mon Sep 17 00:00:00 2001 From: Marius Tomaschewski <[email protected]> Date: Thu, 21 Dec 2017 10:16:04 +0100 Subject: [PATCH] wickedd: explicitly unbind slaves on deletion References: bsc#1061051 Upstream: accepted When a master device is deleted, explicitly clear references pointing to it on slaves instead to let it perform by further event, which may arrive later than an attempt to enslave them into a new, recreated master device (with same name). diff --git a/src/netinfo.c b/src/netinfo.c index 3729284e..6a1348cd 100644 --- a/src/netinfo.c +++ b/src/netinfo.c @@ -581,6 +581,17 @@ ni_netconfig_device_append(ni_netconfig_t *nc, ni_netdev_t *dev) __ni_netdev_list_append(&nc->interfaces, dev); } +static inline void +ni_netconfig_device_unbind_slave_index(ni_netconfig_t *nc, unsigned int master) +{ + ni_netdev_t *dev; + + for (dev = nc->interfaces; dev; dev = dev->next) { + if (dev->link.masterdev.index == master) + ni_netdev_ref_destroy(&dev->link.masterdev); + } +} + void ni_netconfig_device_remove(ni_netconfig_t *nc, ni_netdev_t *dev) { @@ -589,6 +600,7 @@ ni_netconfig_device_remove(ni_netconfig_t *nc, ni_netdev_t *dev) for (pos = &nc->interfaces; (cur = *pos) != NULL; pos = &cur->next) { if (cur == dev) { *pos = cur->next; + ni_netconfig_device_unbind_slave_index(nc, cur->link.ifindex); ni_netdev_put(cur); return; } -- 2.13.6
