From: Damien Le Moal Date: Fri, 24 Feb 2017 02:48:45 +0000 (+0900) Subject: blkzone: Reset all zones when length is not specified X-Git-Tag: v2.30-rc1~216 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72a73102334a7e531e566defcd92dcb822c4e388;p=thirdparty%2Futil-linux.git blkzone: Reset all zones when length is not specified If length is 0, operate on all zones starting from offset. This also fix the maximum length calculation from offset. Signed-off-by: Damien Le Moal --- diff --git a/sys-utils/blkzone.c b/sys-utils/blkzone.c index ddb13fc040..1c3a7ef7da 100644 --- a/sys-utils/blkzone.c +++ b/sys-utils/blkzone.c @@ -235,10 +235,12 @@ static int blkzone_reset(struct blkzone_control *ctl) if (ctl->offset > ctl->total_sectors) errx(EXIT_FAILURE, _("%s: offset is greater than device size"), ctl->devname); - zlen = ctl->length * zonesize; - + if (!ctl->length) + zlen = ctl->total_sectors; + else + zlen = ctl->length * zonesize; if (ctl->offset + zlen > ctl->total_sectors) - zlen = ctl->total_sectors - ctl->length; + zlen = ctl->total_sectors - ctl->offset; za.sector = ctl->offset; za.nr_sectors = zlen;