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.
This commit is contained in:
parent
845ed71645
commit
b5dc98c049
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user