From f0d72664c7c121bd4f4002356d8a9b75860418d4 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Thu, 29 Oct 2015 21:12:01 +0100 Subject: [PATCH 53/54] parted: fix build error on s390 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 Signed-off-by: Viktor Mihajlovski Signed-off-by: Brian C. Lane (cherry picked from commit 388bab890a4e09b09d2428c0e773ed083295f91b) Related: rhbz#1676604 --- libparted/arch/linux.c | 106 ++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c index 56cfe6f..cc40a1a 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -3129,59 +3129,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* linux_get_minimum_alignment(const PedDevice *dev) @@ -3238,6 +3185,59 @@ linux_get_optimum_alignment(const PedDevice *dev) } #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, -- 2.20.1