X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibelogind%2Fsd-device%2Fsd-device.c;h=97da4a8eea0d33a981439ed82f450e5377680b0c;hb=9b3a72550211800eaf34348a76898ed37f931d27;hp=9ef851a6bbfcd6ed53839fbc3ecab28b548b3c17;hpb=4907162e5a8afe8698af2cf4e231cf345ee5f287;p=elogind.git diff --git a/src/libelogind/sd-device/sd-device.c b/src/libelogind/sd-device/sd-device.c index 9ef851a6b..97da4a8ee 100644 --- a/src/libelogind/sd-device/sd-device.c +++ b/src/libelogind/sd-device/sd-device.c @@ -500,6 +500,8 @@ int device_read_uevent_file(sd_device *device) { if (device->uevent_loaded || device->sealed) return 0; + device->uevent_loaded = true; + r = sd_device_get_syspath(device, &syspath); if (r < 0) return r; @@ -570,8 +572,6 @@ int device_read_uevent_file(sd_device *device) { log_debug("sd-device: could not set 'MAJOR=%s' or 'MINOR=%s' from '%s': %s", major, minor, path, strerror(-r)); } - device->uevent_loaded = true; - return 0; } @@ -1193,12 +1193,12 @@ int device_get_id_filename(sd_device *device, const char **ret) { streq(subsystem, "block") ? 'b' : 'c', major(devnum), minor(devnum)); if (r < 0) - return -errno; + return -ENOMEM; } else if (ifindex > 0) { /* use netdev ifindex -- n3 */ r = asprintf(&id, "n%u", ifindex); if (r < 0) - return -errno; + return -ENOMEM; } else { /* use $subsys:$sysname -- pci:0000:00:1f.2 * sysname() has '!' translated, get it from devpath @@ -1211,7 +1211,7 @@ int device_get_id_filename(sd_device *device, const char **ret) { r = asprintf(&id, "+%s:%s", subsystem, sysname); if (r < 0) - return -errno; + return -ENOMEM; } device->id_filename = id; @@ -1243,6 +1243,8 @@ int device_read_db_aux(sd_device *device, bool force) { if (device->db_loaded || (!force && device->sealed)) return 0; + device->db_loaded = true; + r = device_get_id_filename(device, &id); if (r < 0) return r; @@ -1311,8 +1313,6 @@ int device_read_db_aux(sd_device *device, bool force) { } } - device->db_loaded = true; - return 0; }