TAKE_PTR(event);
log_device_uevent(dev, "Device is queued");
- if (!manager->queue_file_created) {
- r = touch("/run/udev/queue");
- if (r < 0)
- log_warning_errno(r, "Failed to touch /run/udev/queue, ignoring: %m");
- else
- manager->queue_file_created = true;
- }
-
return 0;
}
n++;
}
+ if (n > 0)
+ (void) manager_create_queue_file(manager);
+
log_debug("Deserialized %"PRIu64" events.", n);
return 0;
}
DEVICE_TRACE_POINT(kernel_uevent_received, dev);
+ (void) manager_create_queue_file(manager);
+
device_ensure_usec_initialized(dev, NULL);
r = event_queue_insert(manager, dev);
return 1;
}
+int manager_create_queue_file(Manager *manager) {
+ int r;
+
+ assert(manager);
+
+ if (manager->queue_file_created)
+ return 0;
+
+ r = touch("/run/udev/queue");
+ if (r < 0)
+ return log_warning_errno(r, "Failed to touch /run/udev/queue: %m");
+
+ manager->queue_file_created = true;
+ return 0;
+}
+
static int manager_unlink_queue_file(Manager *manager) {
assert(manager);
bool devpath_conflict(const char *a, const char *b);
int manager_requeue_locked_events_by_device(Manager *manager, sd_device *dev);
+
+int manager_create_queue_file(Manager *manager);
log_device_debug(dev, "Received inotify event of watch handle %i.", e->wd);
+ (void) manager_create_queue_file(manager);
(void) manager_requeue_locked_events_by_device(manager, dev);
(void) synthesize_change(manager, dev);
return 0;