[linux-lvm] pvmove
Alasdair G Kergon
agk at redhat.com
Fri Jul 19 23:20:53 UTC 2013
It uses lists of ranges separated by colons.
:x-y
If x is missing, 0 is inserted; if y is missing, the last extent on the device
is inserted.
Man pages can always be improved with more examples!
For +length, try the patch below.
Alasdair
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -1001,7 +1001,7 @@ static int _parse_pes(struct dm_pool *mem, char *c, struct dm_list *pe_ranges,
const char *pvname, uint32_t size)
{
char *endptr;
- uint32_t start, end;
+ uint32_t start, end, len;
/* Default to whole PV */
if (!c) {
@@ -1041,7 +1041,16 @@ static int _parse_pes(struct dm_pool *mem, char *c, struct dm_list *pe_ranges,
goto error;
c = endptr;
}
+ } else if (*c == '+') { /* Length? */
+ c++;
+ if (isdigit(*c)) {
+ if (!xstrtouint32(c, &endptr, 10, &len))
+ goto error;
+ c = endptr;
+ end = start + (len ? (len - 1) : 0);
+ }
}
+
if (*c && *c != ':')
goto error;
More information about the linux-lvm
mailing list