]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: (sun) move aligning of the first sector before availability check
authorMikhail Vorobyov <m.vorobyov@cs.msu.ru>
Thu, 9 Nov 2017 03:37:28 +0000 (06:37 +0300)
committerKarel Zak <kzak@redhat.com>
Thu, 16 Nov 2017 13:11:10 +0000 (14:11 +0100)
So it will check a sector which would be actualy used as the first sector
of the partition.

libfdisk/src/sun.c

index d10fea0d7b91d64c825c366a0d86777812a75cdd..7ffd364f46768a7a62208cc6e55dfe40fc16d675 100644 (file)
@@ -566,6 +566,19 @@ static int sun_add_partition(
                        if (fdisk_use_cylinders(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"
                           However, edmundo@rano.demon.co.uk writes:
                           "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 */
        stop2 = stop;
        for (i = 0; i < cxt->label->nparts_max; i++) {