From: Konrad Rzeszutek Wilk Date: Mon, 10 Jun 2013 16:25:54 +0000 (-0400) Subject: discard_io: Make it possible to give start and end LBA's. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=318100435cbded142941b3e491bcb30f1211d932;p=xentesttools%2Fbootstrap.git discard_io: Make it possible to give start and end LBA's. Signed-off-by: Konrad Rzeszutek Wilk --- diff --git a/root_image/tools/discard_io/discard_io.c b/root_image/tools/discard_io/discard_io.c index b10562c..d3b0e2d 100644 --- a/root_image/tools/discard_io/discard_io.c +++ b/root_image/tools/discard_io/discard_io.c @@ -10,22 +10,32 @@ 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; }