chiark / gitweb /
udevd: improve timeout handling
[elogind.git] / udev_utils.c
index 4695ef0d72a5e9bf3298fd5131353094ebb13784..74b55ed40697ef05e3f84366b864304bfb0093c4 100644 (file)
@@ -45,10 +45,14 @@ int udev_init_device(struct udevice *udev, const char* devpath, const char *subs
 
        memset(udev, 0x00, sizeof(struct udevice));
        INIT_LIST_HEAD(&udev->symlink_list);
+       INIT_LIST_HEAD(&udev->run_list);
 
        if (subsystem)
                strlcpy(udev->subsystem, subsystem, sizeof(udev->subsystem));
 
+       if (action)
+               strlcpy(udev->action, action, sizeof(udev->action));
+
        if (devpath) {
                strlcpy(udev->devpath, devpath, sizeof(udev->devpath));
                remove_trailing_char(udev->devpath, '/');
@@ -85,9 +89,11 @@ int udev_init_device(struct udevice *udev, const char* devpath, const char *subs
                }
        }
 
-       udev->mode = 0660;
-       strcpy(udev->owner, "root");
-       strcpy(udev->group, "root");
+       if (udev->type == DEV_BLOCK || udev->type == DEV_CLASS) {
+               udev->mode = 0660;
+               strcpy(udev->owner, "root");
+               strcpy(udev->group, "root");
+       }
 
        return 0;
 }