summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2012-05-04 19:49:24 +0000
committerae <ae@FreeBSD.org>2012-05-04 19:49:24 +0000
commit3e6d0720decb3c514b152996c21dfffae4c96270 (patch)
tree891781dfaa8d7895ce54f2db1c5d3b61749f0c56 /sbin
parent2ed237af622fef414c4b4510da5c0166d48422df (diff)
downloadFreeBSD-src-3e6d0720decb3c514b152996c21dfffae4c96270.zip
FreeBSD-src-3e6d0720decb3c514b152996c21dfffae4c96270.tar.gz
Don't ignore start offset value when user specifies it together
with alignment. PR: bin/167567 Tested by: Warren Block MFC after: 1 week
Diffstat (limited to 'sbin')
-rw-r--r--sbin/geom/class/part/geom_part.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sbin/geom/class/part/geom_part.c b/sbin/geom/class/part/geom_part.c
index 8296517..8a57ca4 100644
--- a/sbin/geom/class/part/geom_part.c
+++ b/sbin/geom/class/part/geom_part.c
@@ -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] */
OpenPOWER on IntegriCloud