chiark / gitweb /
replace strerror() usage with threadsafe "%m" format string
[elogind.git] / udev / lib / libudev-device.c
index 3437d69798706cd8c3730d25df34ad932845bd50..4cdc9570935bd4d6d29de4b2ab89a1a9a4b49c97 100644 (file)
@@ -77,7 +77,7 @@ static int device_read_db(struct udev_device *udev_device)
        syspath_to_db_path(udev_device, filename, sizeof(filename));
 
        if (lstat(filename, &stats) != 0) {
-               info(udev_device->udev, "no db file to read %s: %s\n", filename, strerror(errno));
+               info(udev_device->udev, "no db file to read %s: %m\n", filename);
                return -1;
        }
        if ((stats.st_mode & S_IFMT) == S_IFLNK) {
@@ -88,7 +88,7 @@ static int device_read_db(struct udev_device *udev_device)
                if (target_len > 0)
                        target[target_len] = '\0';
                else {
-                       info(udev_device->udev, "error reading db link %s: %s\n", filename, strerror(errno));
+                       info(udev_device->udev, "error reading db link %s: %m\n", filename);
                        return -1;
                }
                if (asprintf(&udev_device->devnode, "%s/%s", udev_get_dev_path(udev_device->udev), target) < 0)
@@ -99,7 +99,7 @@ static int device_read_db(struct udev_device *udev_device)
 
        f = fopen(filename, "r");
        if (f == NULL) {
-               info(udev_device->udev, "error reading db file %s: %s\n", filename, strerror(errno));
+               info(udev_device->udev, "error reading db file %s: %m\n", filename);
                return -1;
        }
        while (fgets(line, sizeof(line), f)) {
@@ -295,7 +295,7 @@ struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, de
 {
        char path[UTIL_PATH_SIZE];
        const char *type_str;
-       struct udev_enumerate *enumerate;
+       struct udev_enumerate *udev_enumerate;
        struct udev_list_entry *list_entry;
        struct udev_device *device = NULL;
 
@@ -312,14 +312,16 @@ struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, de
        if (util_resolve_sys_link(udev, path, sizeof(path)) == 0)
                return udev_device_new_from_syspath(udev, path);
 
+       udev_enumerate = udev_enumerate_new(udev);
+       if (udev_enumerate == NULL)
+               return NULL;
+
        /* fallback to search sys devices for the major/minor */
        if (type == 'b')
-               enumerate = udev_enumerate_new_from_devices(udev, "block", NULL);
+               udev_enumerate_scan_devices(udev_enumerate, "block", NULL);
        else if (type == 'c')
-               enumerate = udev_enumerate_new_from_devices(udev, "!block", NULL);
-       if (enumerate == NULL)
-               return NULL;
-       udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(enumerate)) {
+               udev_enumerate_scan_devices(udev_enumerate, "!block", NULL);
+       udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(udev_enumerate)) {
                struct udev_device *device_loop;
 
                device_loop = udev_device_new_from_syspath(udev, udev_list_entry_get_name(list_entry));
@@ -338,7 +340,7 @@ struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, de
                        udev_device_unref(device_loop);
                }
        }
-       udev_enumerate_unref(enumerate);
+       udev_enumerate_unref(udev_enumerate);
        return device;
 }
 
@@ -651,7 +653,7 @@ const char *udev_device_get_attr_value(struct udev_device *udev_device, const ch
        util_strlcat(path, attr, sizeof(path));
 
        if (lstat(path, &statbuf) != 0) {
-               info(udev_device->udev, "stat '%s' failed: %s\n", path, strerror(errno));
+               info(udev_device->udev, "stat '%s' failed: %m\n", path);
                goto out;
        }