diff options
author | Tom Gundersen <teg@jklm.no> | 2015-04-17 14:53:02 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2015-04-17 14:55:40 +0200 |
commit | 08232a020bd2571088d3ee06dda07732c5e963d1 (patch) | |
tree | 374954858fddeaf31cf23b84f453a52b117ced51 /src/libsystemd/sd-device/device-enumerator.c | |
parent | dee5e0b6c29ca22cbf67d28fbee195d70b0dde72 (diff) |
sd-device: uniformly handle missing devices
sd_device_new_from_* now returns -ENODEV when the device does not exist, and the enumerator
silently drops these errors as missing devices is exepected.
Diffstat (limited to 'src/libsystemd/sd-device/device-enumerator.c')
-rw-r--r-- | src/libsystemd/sd-device/device-enumerator.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index 49c44bc47b..d59da7d88f 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -504,8 +504,10 @@ static int enumerator_scan_dir_and_add_devices(sd_device_enumerator *enumerator, k = sd_device_new_from_syspath(&device, syspath); if (k < 0) { - log_debug_errno(k, "device-enumerator: failed to create device from syspath %s: %m", syspath); - r = k; + if (k != -ENODEV) + /* this is necessarily racey, so ignore missing devices */ + r = k; + continue; } @@ -649,7 +651,10 @@ static int enumerator_scan_devices_tag(sd_device_enumerator *enumerator, const c k = sd_device_new_from_device_id(&device, dent->d_name); if (k < 0) { - r = k; + if (k != -ENODEV) + /* this is necessarily racy, so ignore missing devices */ + r = k; + continue; } @@ -712,7 +717,8 @@ static int parent_add_child(sd_device_enumerator *enumerator, const char *path) int r; r = sd_device_new_from_syspath(&device, path); - if (r == -ENOENT) + if (r == -ENODEV) + /* this is necessarily racy, so ignore missing devices */ return 0; else if (r < 0) return r; |