chiark / gitweb /
vol_id: export encoded strings
[elogind.git] / udev_db.c
index 83d3f9bbf8238d9dbd985c86975d007c8dbc5b22..abc1e5ad5a98b80948cbdb7cd3c95b2ac37d1108 100644 (file)
--- a/udev_db.c
+++ b/udev_db.c
@@ -157,9 +157,9 @@ int udev_db_add_device(struct udevice *udev)
                        name_index(udev->dev->devpath, name_loop->name, 1);
                }
                fprintf(f, "M:%u:%u\n", major(udev->devt), minor(udev->devt));
-               if (udev->link_priority)
+               if (udev->link_priority != 0)
                        fprintf(f, "L:%u\n", udev->link_priority);
-               if (udev->partitions)
+               if (udev->partitions != 0)
                        fprintf(f, "A:%u\n", udev->partitions);
                if (udev->ignore_remove)
                        fprintf(f, "R:%u\n", udev->ignore_remove);
@@ -186,7 +186,7 @@ int udev_db_get_device(struct udevice *udev, const char *devpath)
        size_t cur;
        size_t count;
 
-       strlcpy(udev->dev->devpath, devpath, sizeof(udev->dev->devpath));
+       sysfs_device_set_values(udev->dev, devpath, NULL, NULL);
        devpath_to_db_path(devpath, filename, sizeof(filename));
 
        if (lstat(filename, &stats) != 0) {
@@ -286,6 +286,9 @@ int udev_db_delete_device(struct udevice *udev)
        char filename[PATH_SIZE];
        struct name_entry *name_loop;
 
+       if (udev->test_run)
+               return 0;
+
        devpath_to_db_path(udev->dev->devpath, filename, sizeof(filename));
        unlink(filename);