summaryrefslogtreecommitdiff
path: root/src/core/device.c
diff options
context:
space:
mode:
authorDaan De Meyer <daan.j.demeyer@gmail.com>2022-05-07 17:52:44 +0200
committerDaan De Meyer <daan.j.demeyer@gmail.com>2022-05-08 13:25:42 +0200
commitc189f91f1f6e9357b0f4c3393f62da3716ef90b6 (patch)
tree77de74421116e1b994291ced3588bb381533ced1 /src/core/device.c
parentf0fdcb8cfae357e8648f06d0301d3c4ac9b0aa07 (diff)
downloadsystemd-c189f91f1f6e9357b0f4c3393f62da3716ef90b6.tar.gz
core/device: Add logging to device_is_ready()
Diffstat (limited to 'src/core/device.c')
-rw-r--r--src/core/device.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/core/device.c b/src/core/device.c
index e28108ef5c..4885fa9295 100644
--- a/src/core/device.c
+++ b/src/core/device.c
@@ -709,16 +709,34 @@ static void device_update_found_by_name(Manager *m, const char *path, DeviceFoun
}
static bool device_is_ready(sd_device *dev) {
+ int r;
+
assert(dev);
- if (device_is_renaming(dev) > 0)
+ r = device_is_renaming(dev);
+ if (r < 0)
+ log_device_warning_errno(dev, r, "Failed to check if device is renaming, assuming device is not renaming: %m");
+ if (r > 0) {
+ log_device_debug(dev, "Device busy: device is renaming");
return false;
+ }
/* Is it really tagged as 'systemd' right now? */
- if (sd_device_has_current_tag(dev, "systemd") <= 0)
+ r = sd_device_has_current_tag(dev, "systemd");
+ if (r < 0)
+ log_device_warning_errno(dev, r, "Failed to check if device has \"systemd\" tag, assuming device is not tagged with \"systemd\": %m");
+ if (r == 0)
+ log_device_debug(dev, "Device busy: device is not tagged with \"systemd\"");
+ if (r <= 0)
return false;
- return device_get_property_bool(dev, "SYSTEMD_READY") != 0;
+ r = device_get_property_bool(dev, "SYSTEMD_READY");
+ if (r < 0 && r != -ENOENT)
+ log_device_warning_errno(dev, r, "Failed to get device SYSTEMD_READY property, assuming device does not have \"SYSTEMD_READY\" property: %m");
+ if (r == 0)
+ log_device_debug(dev, "Device busy: SYSTEMD_READY property from device is false");
+
+ return r != 0;
}
static Unit *device_following(Unit *u) {