X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Fscsi_id%2Fscsi_id.c;h=507fa27766fe2d5fd02055a8d05dd3d2fff96a0a;hp=d2155e68663908a88f43458c687bebe91f1ce090;hb=07544a93d6c75361b4906d90945755e34fd07565;hpb=b337e60790382589e8e9f088f0ff41a496a85615 diff --git a/extras/scsi_id/scsi_id.c b/extras/scsi_id/scsi_id.c index d2155e686..507fa2776 100644 --- a/extras/scsi_id/scsi_id.c +++ b/extras/scsi_id/scsi_id.c @@ -736,9 +736,7 @@ static int scsi_id(const char *target_path, char *maj_min_dev) format_serial(serial); if (display_bus_id) printf("%s: ", scsi_dev->name); - printf("%s", serial); - if (!hotplug_mode) - printf("\n"); + printf("%s\n", serial); dprintf("%s\n", serial); retval = 0; } @@ -762,11 +760,6 @@ int main(int argc, char **argv) if (getenv("DEBUG")) debug++; - if ((argc == 2) && (argv[1][0] != '-')) { - hotplug_mode = 1; - dprintf("hotplug assumed\n"); - } - dprintf("argc is %d\n", argc); if (sysfs_get_mnt_path(sysfs_mnt_path, MAX_NAME_LEN)) { log_message(LOG_WARNING, "sysfs_get_mnt_path failed: %s\n", @@ -774,27 +767,19 @@ int main(int argc, char **argv) exit(1); } - if (hotplug_mode) { + devpath = getenv("DEVPATH"); + if (devpath) { /* - * There is a kernel race creating attributes, if called - * directly, uncomment the sleep. + * This implies that we were invoked via udev or hotplug. */ - /* sleep(1); */ - - devpath = getenv("DEVPATH"); - if (!devpath) { - log_message(LOG_WARNING, "DEVPATH is not set\n"); - exit(1); - } + hotplug_mode = 1; sys_specified = 1; - strncpy(target_path, sysfs_mnt_path, MAX_NAME_LEN); strncat(target_path, devpath, MAX_NAME_LEN); } /* - * Override any command line options set via the config file. This - * is the only way to set options when in hotplug mode. + * Get config file options. */ newargv = NULL; retval = get_file_options(NULL, NULL, &newargc, &newargv); @@ -806,11 +791,13 @@ int main(int argc, char **argv) exit(1); free(newargv); } - if (!hotplug_mode) { - if (set_options(argc, argv, short_options, target_path, - maj_min_dev) < 0) + /* + * Get command line options (overriding any config file or DEVPATH + * settings). + */ + if (set_options(argc, argv, short_options, target_path, + maj_min_dev) < 0) exit(1); - } if (!sys_specified) { log_message(LOG_WARNING, "-s must be specified\n");