From: Yu Watanabe Date: Thu, 24 Dec 2020 06:22:12 +0000 (+0900) Subject: udev/cdrom: use random_u64() and usleep() X-Git-Tag: v248-rc1~414 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=511ff06e991783cbc26399d36a3e6848ef6edc2c;p=thirdparty%2Fsystemd.git udev/cdrom: use random_u64() and usleep() --- diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c index 14b204ee453..6ac875dde40 100644 --- a/src/udev/cdrom_id/cdrom_id.c +++ b/src/udev/cdrom_id/cdrom_id.c @@ -1050,7 +1050,6 @@ static int parse_argv(int argc, char *argv[]) { int main(int argc, char *argv[]) { int fd = -1; - int cnt; int rc = 0; int r; @@ -1065,16 +1064,13 @@ int main(int argc, char *argv[]) { goto exit; } - initialize_srand(); - for (cnt = 20; cnt > 0; cnt--) { - struct timespec duration; + for (int cnt = 0; cnt < 20; cnt++) { + if (cnt != 0) + (void) usleep(100 * USEC_PER_MSEC + random_u64() % (100 * USEC_PER_MSEC)); fd = open(arg_node, O_RDONLY|O_NONBLOCK|O_CLOEXEC); if (fd >= 0 || errno != EBUSY) break; - duration.tv_sec = 0; - duration.tv_nsec = (100 * 1000 * 1000) + (rand() % 100 * 1000 * 1000); - nanosleep(&duration, NULL); } if (fd < 0) { log_debug("unable to open '%s'", arg_node);