parted/0003-parted-fix-build-error-on-s390.patch
2017-05-18 07:06:10 +00:00

143 lines
4.0 KiB
Diff

From: Colin Watson <cjwatson@ubuntu.com>
Date: Thu, 29 Oct 2015 21:12:01 +0100
Subject: parted: fix build error on s390
References: fate#320525 / bsc#935127
Patch-mainline: v3.3
Git-commit: 388bab890a4e09b09d2428c0e773ed083295f91b
The preceding dasd probing patches have introduced a compile error
when building with blkid support. Fixed by reordering function
definitions.
Signed-off-by: Colin Watson <cjwatson@ubuntu.com>
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Signed-off-by: Brian C. Lane <bcl@redhat.com>
Acked-by: Sebastian Parschauer <sparschauer@suse.de>
---
libparted/arch/linux.c | 107 ++++++++++++++++++++++++-------------------------
1 file changed, 54 insertions(+), 53 deletions(-)
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -3263,59 +3263,6 @@ linux_disk_commit (PedDisk* disk)
return 1;
}
-#if defined __s390__ || defined __s390x__
-/**
- * Check whether this device could be a DASD
- *
- * The device probing yields PED_DEVICE_DASD for native DASD transport
- * If the block device uses a different transport (e.g. virtio)
- * a simplified heuristic (assuming a model 3390 with 4K sectors)
- * is applied (only) on s390x systems for this check.
- *
- * \return 1 if the geometry indicates this could be a DASD
- * and 0 otherwise
- */
-static int
-_ped_device_like_dasd(const PedDevice *dev)
-{
- return (dev->type == PED_DEVICE_DASD)
- || (dev->hw_geom.heads == 15
- && dev->hw_geom.sectors == 12
- && (dev->hw_geom.cylinders
- * dev->hw_geom.heads
- * dev->hw_geom.sectors
- * dev->phys_sector_size
- == dev->length * dev->sector_size));
-}
-
-
-
-static PedAlignment*
-s390_get_minimum_alignment(const PedDevice *dev)
-{
-#if USE_BLKID
- return linux_get_minimum_alignment(dev);
-#else
- return ped_alignment_new(0,
- dev->phys_sector_size
- / dev->sector_size);
-#endif
-}
-
-static PedAlignment*
-s390_get_optimum_alignment(const PedDevice *dev)
-{
- /* DASD needs to use minimum alignment */
- if (_ped_device_like_dasd(dev))
- return s390_get_minimum_alignment(dev);
-#if USE_BLKID
- return linux_get_optimum_alignment(dev);
-#else
- return NULL;
-#endif
-}
-#endif
-
#if USE_BLKID
static PedAlignment*
@@ -3411,6 +3358,60 @@ error:
}
#endif
+#if defined __s390__ || defined __s390x__
+/**
+ * Check whether this device could be a DASD
+ *
+ * The device probing yields PED_DEVICE_DASD for native DASD transport
+ * If the block device uses a different transport (e.g. virtio)
+ * a simplified heuristic (assuming a model 3390 with 4K sectors)
+ * is applied (only) on s390x systems for this check.
+ *
+ * \return 1 if the geometry indicates this could be a DASD
+ * and 0 otherwise
+ */
+static int
+_ped_device_like_dasd(const PedDevice *dev)
+{
+ return (dev->type == PED_DEVICE_DASD)
+ || (dev->hw_geom.heads == 15
+ && dev->hw_geom.sectors == 12
+ && (dev->hw_geom.cylinders
+ * dev->hw_geom.heads
+ * dev->hw_geom.sectors
+ * dev->phys_sector_size
+ == dev->length * dev->sector_size));
+}
+
+
+
+static PedAlignment*
+s390_get_minimum_alignment(const PedDevice *dev)
+{
+#if USE_BLKID
+ return linux_get_minimum_alignment(dev);
+#else
+ return ped_alignment_new(0,
+ dev->phys_sector_size
+ / dev->sector_size);
+#endif
+}
+
+static PedAlignment*
+s390_get_optimum_alignment(const PedDevice *dev)
+{
+ /* DASD needs to use minimum alignment */
+ if (_ped_device_like_dasd(dev))
+ return s390_get_minimum_alignment(dev);
+#if USE_BLKID
+ return linux_get_optimum_alignment(dev);
+#else
+ return NULL;
+#endif
+}
+#endif
+
+
static PedDeviceArchOps linux_dev_ops = {
_new: linux_new,
destroy: linux_destroy,