From 318100435cbded142941b3e491bcb30f1211d932 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 10 Jun 2013 12:25:54 -0400 Subject: [PATCH] discard_io: Make it possible to give start and end LBA's. Signed-off-by: Konrad Rzeszutek Wilk --- root_image/tools/discard_io/discard_io.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) 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; } -- 2.39.5