From: Kay Sievers Date: Sat, 2 Jun 2007 20:00:10 +0000 (+0200) Subject: sysfs: change order of subsystem lookup X-Git-Tag: 174~1919 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=03178b0ccec2d4eed7e57563f17fc60adc0a4446 sysfs: change order of subsystem lookup --- diff --git a/udev_sysfs.c b/udev_sysfs.c index 8525620a0..98be9a535 100644 --- a/udev_sysfs.c +++ b/udev_sysfs.c @@ -446,16 +446,16 @@ int sysfs_lookup_devpath_by_subsys_id(char *devpath_full, size_t len, const char if (stat(path_full, &statbuf) == 0) goto found; - strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; + goto out; - strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; - goto out; } if (strcmp(subsystem, "module") == 0) { @@ -499,22 +499,21 @@ int sysfs_lookup_devpath_by_subsys_id(char *devpath_full, size_t len, const char if (stat(path_full, &statbuf) == 0) goto found; - strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); strlcat(path, subsystem, sizeof(path_full) - sysfs_len); - strlcat(path, "/", sizeof(path_full) - sysfs_len); + strlcat(path, "/devices/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; - strlcpy(path, "/bus/", sizeof(path_full) - sysfs_len); + strlcpy(path, "/class/", sizeof(path_full) - sysfs_len); strlcat(path, subsystem, sizeof(path_full) - sysfs_len); - strlcat(path, "/devices/", sizeof(path_full) - sysfs_len); + strlcat(path, "/", sizeof(path_full) - sysfs_len); strlcat(path, id, sizeof(path_full) - sysfs_len); if (stat(path_full, &statbuf) == 0) goto found; out: return 0; - found: if (S_ISLNK(statbuf.st_mode)) sysfs_resolve_link(path, sizeof(path_full) - sysfs_len);