]> xenbits.xensource.com Git - xentesttools/bootstrap.git/commitdiff
discard_io: Make it possible to give start and end LBA's.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Mon, 10 Jun 2013 16:25:54 +0000 (12:25 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Mon, 10 Jun 2013 16:25:54 +0000 (12:25 -0400)
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
root_image/tools/discard_io/discard_io.c

index b10562ceba3ff4bd1b820e135f156c87676f72e4..d3b0e2db232bebced31bb2c056c9d95c3f56e8ff 100644 (file)
 
 int main(int argc, char *argv[])
 {
-       char *name = "/dev/xvda";
+       char *name = "/dev/xvda1";
        int disk;
        unsigned long range[2];
+       unsigned long start = 0, end = 4096;
        int rc;
 
-       if (argc >= 1)
+       if (argc >= 1) {
                name = argv[1];
-
+               if (argc >= 2) {
+                       start = atoi(argv[2]);
+                       end = atoi(argv[3]);
+               }
+       }
        disk = open(name, O_RDWR | O_EXCL | O_LARGEFILE);
        if (disk == -1) {
                fprintf(stderr,"Cannot open %s [%s]\n", name, strerror(errno));
                return errno;
        }
-       range[0] = 0;
-       range[1] = (-1ULL);
+       range[0] = start;
+       range[1] = end;
+       fprintf(stderr, "%s[%d->%d]\n", name, start, end);
        rc = ioctl(disk,  BLKDISCARD, &range);
+       if (rc) {
+               fprintf(stderr, "%s[%d->%d]: %d, %s\n", name, range[0], range[1], rc, strerror(errno));
+       }
+
        close(disk);
        return rc;
 }