diff options
author | Damien Le Moal | 2017-02-24 03:48:45 +0100 |
---|---|---|
committer | Karel Zak | 2017-02-24 11:53:45 +0100 |
commit | 72a73102334a7e531e566defcd92dcb822c4e388 (patch) | |
tree | 690c07bb3106ff1cfd4bcff7b49b0f5acf1f26aa /sys-utils/blkzone.c | |
parent | blkreport, blkreset: remove in favour of blkzone (diff) | |
download | kernel-qcow2-util-linux-72a73102334a7e531e566defcd92dcb822c4e388.tar.gz kernel-qcow2-util-linux-72a73102334a7e531e566defcd92dcb822c4e388.tar.xz kernel-qcow2-util-linux-72a73102334a7e531e566defcd92dcb822c4e388.zip |
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 <damien.lemoal@wdc.com>
Diffstat (limited to 'sys-utils/blkzone.c')
-rw-r--r-- | sys-utils/blkzone.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys-utils/blkzone.c b/sys-utils/blkzone.c index ddb13fc04..1c3a7ef7d 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; |