Don't ignore start offset value when user specifies it together

with alignment.

PR:		bin/167567
Tested by:	Warren Block
MFC after:	1 week
This commit is contained in:
Andrey V. Elsukov 2012-05-04 19:49:24 +00:00
parent 92fa7e24cb
commit ceeac1ac05

View File

@ -507,6 +507,8 @@ gpart_autofill(struct gctl_req *req)
grade = ~0ULL;
a_first = ALIGNUP(first + offset, alignment);
last = ALIGNDOWN(last + offset, alignment);
if (a_first < start)
a_first = start;
while ((pp = find_provider(gp, first)) != NULL) {
s = find_provcfg(pp, "start");
lba = (off_t)strtoimax(s, NULL, 0);
@ -536,7 +538,8 @@ gpart_autofill(struct gctl_req *req)
s = find_provcfg(pp, "end");
first = (off_t)strtoimax(s, NULL, 0) + 1;
a_first = ALIGNUP(first + offset, alignment);
if (first > a_first)
a_first = ALIGNUP(first + offset, alignment);
}
if (a_first <= last) {
/* Free space [first-last] */