chiark / gitweb /
finally remove the directory event-multiplexer crap
[elogind.git] / udev_rules.c
index 7ab3bba71c0361c7433f47b0f05bad28e93fb633..5078f2d3d1668a6e4d80b9eb487c9c324234c0c7 100644 (file)
@@ -236,7 +236,7 @@ static int import_parent_into_env(struct udevice *udev, const char *filter)
                struct name_entry *name_loop;
 
                dbg("found parent '%s', get the node name", dev_parent->devpath);
-               udev_parent = udev_device_init();
+               udev_parent = udev_device_init(NULL);
                if (udev_parent == NULL)
                        return -1;
                /* import the udev_db of the parent */
@@ -289,7 +289,7 @@ static int wait_for_sysfs(struct udevice *udev, const char *file, int timeout)
                        info("file '%s' appeared after %i loops", filepath, (timeout * WAIT_LOOP_PER_SECOND) - loop-1);
                        return 0;
                }
-               /* make sure the device does not have disappeared in the meantime */
+               /* make sure, the device did not disappear in the meantime */
                if (stat(devicepath, &stats) != 0) {
                        info("device disappeared while waiting for '%s'", filepath);
                        return -2;
@@ -518,7 +518,7 @@ found:
                                        struct udevice *udev_parent;
 
                                        dbg("found parent '%s', get the node name", dev_parent->devpath);
-                                       udev_parent = udev_device_init();
+                                       udev_parent = udev_device_init(NULL);
                                        if (udev_parent != NULL) {
                                                /* lookup the name in the udev_db with the DEVPATH of the parent */
                                                if (udev_db_get_device(udev_parent, dev_parent->devpath) == 0) {
@@ -861,8 +861,9 @@ try_parent:
                        info("writing '%s' to sysfs file '%s'", value, attr);
                        f = fopen(attr, "w");
                        if (f != NULL) {
-                               if (fprintf(f, "%s", value) <= 0)
-                                       err("error writing ATTR{%s}: %s", attr, strerror(errno));
+                               if (!udev->test_run)
+                                       if (fprintf(f, "%s", value) <= 0)
+                                               err("error writing ATTR{%s}: %s", attr, strerror(errno));
                                fclose(f);
                        } else
                                err("error opening ATTR{%s} for writing: %s", attr, strerror(errno));
@@ -909,6 +910,10 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev)
                                udev->ignore_remove = 1;
                                dbg("remove event should be ignored");
                        }
+                       if (rule->link_priority) {
+                               udev->link_priority = rule->link_priority;
+                               info("link_priority=%i", udev->link_priority);
+                       }
                        /* apply all_partitions option only at a main block device */
                        if (rule->partitions &&
                            strcmp(udev->dev->subsystem, "block") == 0 && udev->dev->kernel_number[0] == '\0') {