svn commit: r324369 - head/sbin/geom/class/part
Marcel Moolenaar
marcel at FreeBSD.org
Fri Oct 6 16:38:02 UTC 2017
Author: marcel
Date: Fri Oct 6 16:38:00 2017
New Revision: 324369
URL: https://svnweb.freebsd.org/changeset/base/324369
Log:
Fix alignment of 'last' in autofill.
'last' is the sector number of the last usable sector. Sector
numbers start with 0. As such, 'last' is always 1 less than
the count of sectors and aligning 'last' down as-is means that
the number of free sectors is pessimized by 'alignment - 1' if
the number of usable sectors was already a multiple of the
alignment. Consequently, gpart(8) failed to create a partition
when the alignment and size were such that it would extend to
the end of the disk.
Modified:
head/sbin/geom/class/part/geom_part.c
Modified: head/sbin/geom/class/part/geom_part.c
==============================================================================
--- head/sbin/geom/class/part/geom_part.c Fri Oct 6 15:46:11 2017 (r324368)
+++ head/sbin/geom/class/part/geom_part.c Fri Oct 6 16:38:00 2017 (r324369)
@@ -547,7 +547,7 @@ gpart_autofill(struct gctl_req *req)
last = (off_t)strtoimax(s, NULL, 0);
grade = ~0ULL;
a_first = ALIGNUP(first + offset, alignment);
- last = ALIGNDOWN(last + offset, alignment);
+ last = ALIGNDOWN(last + offset + 1, alignment) - 1;
if (a_first < start)
a_first = start;
while ((pp = find_provider(gp, first)) != NULL) {
More information about the svn-src-head
mailing list