libfdisk: (sun) move aligning of the first sector before availability check
So it will check a sector which would be actualy used as the first sector of the partition.
This commit is contained in:
parent
42ee788268
commit
45ce148778
|
@ -566,6 +566,19 @@ static int sun_add_partition(
|
||||||
if (fdisk_use_cylinders(cxt))
|
if (fdisk_use_cylinders(cxt))
|
||||||
first *= fdisk_get_units_per_sector(cxt);
|
first *= fdisk_get_units_per_sector(cxt);
|
||||||
|
|
||||||
|
if (!fdisk_use_cylinders(cxt)) {
|
||||||
|
/* Starting sector has to be properly aligned */
|
||||||
|
int cs = cxt->geom.heads * cxt->geom.sectors;
|
||||||
|
int x = first % cs;
|
||||||
|
|
||||||
|
if (x) {
|
||||||
|
fdisk_info(cxt, _("Aligning the first sector from %u to %u "
|
||||||
|
"to be on cylinder boundary."),
|
||||||
|
first, first + cs - x);
|
||||||
|
first += cs - x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ewt asks to add: "don't start a partition at cyl 0"
|
/* ewt asks to add: "don't start a partition at cyl 0"
|
||||||
However, edmundo@rano.demon.co.uk writes:
|
However, edmundo@rano.demon.co.uk writes:
|
||||||
"In addition to having a Sun partition table, to be able to
|
"In addition to having a Sun partition table, to be able to
|
||||||
|
@ -593,20 +606,6 @@ static int sun_add_partition(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!fdisk_use_cylinders(cxt)) {
|
|
||||||
/* Starting sector has to be properly aligned */
|
|
||||||
int cs = cxt->geom.heads * cxt->geom.sectors;
|
|
||||||
int x = first % cs;
|
|
||||||
|
|
||||||
if (x) {
|
|
||||||
fdisk_info(cxt, _("Aligning the first sector from %u to %u "
|
|
||||||
"to be on cylinder boundary."),
|
|
||||||
first, first + cs - x);
|
|
||||||
first += cs - x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stop = cxt->geom.cylinders * cxt->geom.heads * cxt->geom.sectors; /* ancient */
|
stop = cxt->geom.cylinders * cxt->geom.heads * cxt->geom.sectors; /* ancient */
|
||||||
stop2 = stop;
|
stop2 = stop;
|
||||||
for (i = 0; i < cxt->label->nparts_max; i++) {
|
for (i = 0; i < cxt->label->nparts_max; i++) {
|
||||||
|
|
Loading…
Reference in New Issue