mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-03 13:47:04 +03:00
sd-device: get_subsystem - don't complain if a device does not have a subsystem
This commit is contained in:
parent
d4cb023490
commit
4189708ad0
@ -785,7 +785,7 @@ _public_ int sd_device_get_subsystem(sd_device *device, const char **ret) {
|
||||
path_startswith(device->devpath, "/class/") ||
|
||||
path_startswith(device->devpath, "/bus/"))
|
||||
r = device_set_subsystem(device, "subsystem");
|
||||
if (r < 0)
|
||||
if (r < 0 && r != -ENOENT)
|
||||
return log_debug_errno(r, "sd-device: could not set subsystem for %s: %m", device->devpath);
|
||||
|
||||
device->subsystem_set = true;
|
||||
@ -1188,6 +1188,8 @@ int device_get_id_filename(sd_device *device, const char **ret) {
|
||||
return r;
|
||||
|
||||
if (major(devnum) > 0) {
|
||||
assert(subsystem);
|
||||
|
||||
/* use dev_t -- b259:131072, c254:0 */
|
||||
r = asprintf(&id, "%c%u:%u",
|
||||
streq(subsystem, "block") ? 'b' : 'c',
|
||||
@ -1209,6 +1211,9 @@ int device_get_id_filename(sd_device *device, const char **ret) {
|
||||
if (!sysname)
|
||||
return -EINVAL;
|
||||
|
||||
if (!subsystem)
|
||||
return -EINVAL;
|
||||
|
||||
r = asprintf(&id, "+%s:%s", subsystem, sysname);
|
||||
if (r < 0)
|
||||
return -ENOMEM;
|
||||
|
@ -178,7 +178,8 @@ _public_ const char *udev_device_get_subsystem(struct udev_device *udev_device)
|
||||
if (r < 0) {
|
||||
errno = -r;
|
||||
return NULL;
|
||||
}
|
||||
} else if (!subsystem)
|
||||
errno = ENODATA;
|
||||
|
||||
return subsystem;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user