X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=init.c;h=07575397edfeb4498fc33462f7bfce1fa51599b9;hb=238748dd812605894c1f67879ba3c784f9181357;hp=46948189930a2379050908948eb563d0fcc3b4b2;hpb=7c5ca58cbcaeaea20653ee430ee39694a976aaab;p=rhbz1184405.git diff --git a/init.c b/init.c index 4694818..0757539 100644 --- a/init.c +++ b/init.c @@ -78,35 +78,39 @@ static char buffer[BUFSIZ]; static void run_test (const char *dev) { - int fd; + int fd, passno; uint64_t size; ssize_t r; printf ("init: testing %s\n", dev); - fflush (stdout); - fd = open (dev, O_RDONLY); - if (fd == -1) { - perror (dev); - _exit (EXIT_FAILURE); - } - if (ioctl (fd, BLKGETSIZE64, &size) == -1) { - perror ("ioctl: BLKGETSIZE64"); - _exit (EXIT_FAILURE); - } + for (passno = 0; passno < 5; ++passno) { + printf ("init: %s: pass %d\n", dev, passno); + fflush (stdout); - while (size > 0) { - r = read (fd, buffer, MIN (BUFSIZ, size)); - if (r == -1) { - perror ("read"); + fd = open (dev, O_RDONLY); + if (fd == -1) { + perror (dev); + _exit (EXIT_FAILURE); + } + if (ioctl (fd, BLKGETSIZE64, &size) == -1) { + perror ("ioctl: BLKGETSIZE64"); _exit (EXIT_FAILURE); } - size -= r; - } - if (close (fd) == -1) { - perror ("close"); - _exit (EXIT_FAILURE); + while (size > 0) { + r = read (fd, buffer, MIN (BUFSIZ, size)); + if (r == -1) { + perror ("read"); + _exit (EXIT_FAILURE); + } + size -= r; + } + + if (close (fd) == -1) { + perror ("close"); + _exit (EXIT_FAILURE); + } } printf ("init: test of %s finished successfully\n", dev);