Use separate udev tag for devices in user session
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Fri, 26 Jul 2019 08:48:24 +0000 (10:48 +0200)
committerŁukasz Stelmach <l.stelmach@samsung.com>
Mon, 12 Feb 2024 15:37:44 +0000 (16:37 +0100)
The system-user tag can be used to mark devices that will be enumerated by
systemd in 'systemd --user' instance.

Change-Id: I5889f50df6c329de36c2544ee5cf1ba1c52ad433
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
src/core/device.c

index 16e56ef..592ec47 100644 (file)
@@ -610,6 +610,12 @@ static void device_enumerate(Manager *m) {
         _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
         struct udev_list_entry *item = NULL, *first = NULL;
         int r;
+        const char *udev_tag;
+
+        if (MANAGER_IS_USER(m))
+                udev_tag = "systemd-user";
+        else
+                udev_tag = "systemd";
 
         assert(m);
 
@@ -625,7 +631,7 @@ static void device_enumerate(Manager *m) {
                  * during boot. */
                 (void) udev_monitor_set_receive_buffer_size(m->udev_monitor, 128*1024*1024);
 
-                r = udev_monitor_filter_add_match_tag(m->udev_monitor, "systemd");
+                r = udev_monitor_filter_add_match_tag(m->udev_monitor, udev_tag);
                 if (r < 0) {
                         log_error_errno(r, "Failed to add udev tag match: %m");
                         goto fail;
@@ -652,7 +658,7 @@ static void device_enumerate(Manager *m) {
                 goto fail;
         }
 
-        r = udev_enumerate_add_match_tag(e, "systemd");
+        r = udev_enumerate_add_match_tag(e, udev_tag);
         if (r < 0) {
                 log_error_errno(r, "Failed to create udev tag enumeration: %m");
                 goto fail;