+static bool device_is_ready(struct udev_device *dev) {
+ const char *ready;
+
+ assert(dev);
+
+ ready = udev_device_get_property_value(dev, "SYSTEMD_READY");
+ if (!ready)
+ return true;
+
+ return parse_boolean(ready) != 0;
+}
+
+static int device_process_new_path(Manager *m, const char *path) {
+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL;
+
+ assert(m);
+ assert(path);
+
+ dev = udev_device_new_from_syspath(m->udev, path);
+ if (!dev)
+ return log_oom();
+
+ if (!device_is_ready(dev))
+ return 0;
+
+ return device_process_new_device(m, dev);
+}
+