mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-08 08:00:34 +01:00
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.
This commit is contained in:
parent
4b022ed32b
commit
608783c5b7
1 changed files with 8 additions and 0 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue