diff options
| author | Michael Biebl <biebl@debian.org> | 2011-01-22 16:56:52 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2011-01-22 16:56:59 +0100 |
| commit | cb111f43604c48ad817c93721dc3a1d37266dbd5 (patch) | |
| tree | f77553ea238eeddf6ba92de336e58a08a379215f | |
| parent | 973b7936870c572586242ded2e3d759906517344 (diff) | |
Cherry-pick patch from upstream to correctly handle device removal
when properties are unreadable. (Closes: #605570)
| -rw-r--r-- | debian/changelog | 7 | ||||
| -rw-r--r-- | debian/patches/82-core-handle-device-removal.patch | 37 | ||||
| -rw-r--r-- | debian/patches/series | 1 |
3 files changed, 45 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 5842987f..2a06fe38 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +network-manager (0.8.2-4) UNRELEASED; urgency=low + + * Cherry-pick patch from upstream to correctly handle device removal when + properties are unreadable. (Closes: #605570) + + -- Michael Biebl <biebl@debian.org> Sat, 22 Jan 2011 16:53:48 +0100 + network-manager (0.8.2-3) experimental; urgency=low * Cherry-pick two patches from upstream Git to make the keyfile plugin diff --git a/debian/patches/82-core-handle-device-removal.patch b/debian/patches/82-core-handle-device-removal.patch new file mode 100644 index 00000000..deac3a69 --- /dev/null +++ b/debian/patches/82-core-handle-device-removal.patch @@ -0,0 +1,37 @@ +From aff8f48190458c7dc894ad0ec07c935dc530abab Mon Sep 17 00:00:00 2001 +From: Dan Williams <dcbw@redhat.com> +Date: Tue, 23 Nov 2010 13:10:01 -0600 +Subject: [PATCH] core: handle device removal when properties are unreadable + +By the time we get the udev device removal notification we may not +be able to read properties, since the device has already been +removed from sysfs. That means we can't get the ifindex, so we need +to fall back to the interface name. But we always want to prefer +the ifindex since that will never change as long as the device is +connected, unlike the interface name. +--- + src/nm-manager.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/src/nm-manager.c b/src/nm-manager.c +index eb393fa..48f2173 100644 +--- a/src/nm-manager.c ++++ b/src/nm-manager.c +@@ -2426,6 +2426,14 @@ udev_device_removed_cb (NMUdevManager *manager, + + ifindex = g_udev_device_get_property_as_int (udev_device, "IFINDEX"); + device = find_device_by_ifindex (self, ifindex); ++ if (!device) { ++ /* On removal we won't always be able to read properties anymore, as ++ * they may have already been removed from sysfs. Instead, we just ++ * have to fall back to the device's interface name. ++ */ ++ device = find_device_by_iface (self, g_udev_device_get_name (udev_device)); ++ } ++ + if (device) + priv->devices = remove_one_device (self, priv->devices, device, FALSE); + } +-- +1.7.2.3 + diff --git a/debian/patches/series b/debian/patches/series index c278fbe1..ccf6b407 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -7,3 +7,4 @@ 70-install-nm-online.patch 80-keyfile-ignore-temporary-files.patch 81-keyfile-quiet-keyfile-plugin-when-re-read-connection.patch +82-core-handle-device-removal.patch |