diff --git a/extras/edd_id/edd_id.c b/extras/edd_id/edd_id.c index 504aac36e6..8ac50e9812 100644 --- a/extras/edd_id/edd_id.c +++ b/extras/edd_id/edd_id.c @@ -63,6 +63,7 @@ int main(int argc, char *argv[]) int sysfs_fd; DIR *dir = NULL; int rc = 1; + char *match = NULL; logging_init("edd_id"); @@ -165,15 +166,24 @@ int main(int argc, char *argv[]) sysfs_id = strtoul(sysfs_id_buf, NULL, 16); if (disk_id == sysfs_id) { - if (export) - printf("ID_EDD=%s\n", dent->d_name); - else - printf("%s\n", dent->d_name); - rc = 0; - break; + if (!match) { + match = dent->d_name; + } else { + info("'%s' does not have a unique signature", node); + fprintf(stderr, "'%s' does not have a unique signature\n", node); + rc=10; + goto exit; + } } + } + if (export) + printf("ID_EDD=%s\n", match); + else + printf("%s\n", match); + rc = 0; + close: close(disk_fd); closedir: