From adff65cb734761658ab40b416318987d4ef39850 Mon Sep 17 00:00:00 2001 From: lingsheng Date: Thu, 14 Dec 2023 11:59:34 +0800 Subject: [PATCH] remove patch which modifid cyl-size (cherry picked from commit 962106340685ed4489341e01db7001dcb2bbdeba) --- ...-remove-patch-which-modifid-cyl-size.patch | 88 +++++++++++++++++++ parted.spec | 7 +- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 9000-parted-remove-patch-which-modifid-cyl-size.patch diff --git a/9000-parted-remove-patch-which-modifid-cyl-size.patch b/9000-parted-remove-patch-which-modifid-cyl-size.patch new file mode 100644 index 0000000..5888f1a --- /dev/null +++ b/9000-parted-remove-patch-which-modifid-cyl-size.patch @@ -0,0 +1,88 @@ +From bfce75fd13dd72c6300f0ac3d739e40df90f7dce Mon Sep 17 00:00:00 2001 +From: lixiaokeng +Date: Sun, 7 Jun 2020 15:18:00 +0000 +Subject: [PATCH] parted: remove patch which modified cyl size + +The cyl size was changed which leaded to "parted /dev/sdb -s mkpart primary 0cyl 128cyl" +could not perform as expected. Remove the patch "Use BLKSSZGET to get device sector size +in _device_probe_geometry()". + +Signed-off-by:lixiaokeng +--- + linux.c | 52 ++++++++++++++++++---------------------------------- + 1 file changed, 18 insertions(+), 34 deletions(-) + +diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c +index 37cf555..0d8149d 100644 +--- a/libparted/arch/linux.c ++++ b/libparted/arch/linux.c +@@ -868,7 +868,6 @@ _device_probe_geometry (PedDevice* dev) + struct stat dev_stat; + struct hd_geometry geometry; + int geometry_is_valid = 0; +- int sector_size = 0; + + if (!_device_stat (dev, &dev_stat)) + return 0; +@@ -880,41 +879,26 @@ _device_probe_geometry (PedDevice* dev) + if (!dev->length) + return 0; + +- /* initialize the bios_geom values to something */ +- dev->bios_geom.sectors = 0; +- dev->bios_geom.heads = 0; +- dev->bios_geom.cylinders = 0; +- +- geometry_is_valid = !ioctl (arch_specific->fd, HDIO_GETGEO, &geometry) +- && geometry.sectors && geometry.heads; +- +-#if defined __s390__ || defined __s390x__ +- if (geometry_is_valid) { +-#else +- if (!ioctl (arch_specific->fd, BLKSSZGET, §or_size)) { +- /* get the sector count first */ +- dev->bios_geom.sectors = 1 + (sector_size / PED_SECTOR_SIZE_DEFAULT); +- dev->bios_geom.heads = 255; +- } else if (geometry_is_valid) { +- /* if BLKSSZGET failed, use deprecated HDIO_GETGEO result */ +-#endif +- dev->bios_geom.sectors = geometry.sectors; +- dev->bios_geom.heads = geometry.heads; ++ /* The GETGEO ioctl is no longer useful (as of linux 2.6.x). We could ++ * still use it in 2.4.x, but this is contentious. Perhaps we should ++ * move to EDD. */ ++ dev->bios_geom.sectors = 63; ++ dev->bios_geom.heads = 255; ++ dev->bios_geom.cylinders ++ = dev->length / (63 * 255); ++ ++ /* FIXME: what should we put here? (TODO: discuss on linux-kernel) */ ++ if (!ioctl (arch_specific->fd, HDIO_GETGEO, &geometry) ++ && geometry.sectors && geometry.heads) { ++ dev->hw_geom.sectors = geometry.sectors; ++ dev->hw_geom.heads = geometry.heads; ++ dev->hw_geom.cylinders ++ = dev->length / (dev->hw_geom.heads ++ * dev->hw_geom.sectors); + } else { +- ped_exception_throw ( +- PED_EXCEPTION_WARNING, +- PED_EXCEPTION_OK, +- _("Could not determine sector size for %s: %s.\n" +- "Using the default sector size (%lld)."), +- dev->path, strerror (errno), PED_SECTOR_SIZE_DEFAULT); +- dev->bios_geom.sectors = 2; +- dev->bios_geom.heads = 255; ++ dev->hw_geom = dev->bios_geom; + } + +- dev->bios_geom.cylinders +- = dev->length / (dev->bios_geom.heads +- * dev->bios_geom.sectors); +- dev->hw_geom = dev->bios_geom; + return 1; + } + +-- +1.8.3.1 + diff --git a/parted.spec b/parted.spec index d99a506..be7e843 100644 --- a/parted.spec +++ b/parted.spec @@ -16,7 +16,7 @@ Summary: The GNU disk partition manipulation program Name: parted Version: 3.5 -Release: 1 +Release: 2 URL: https://www.gnu.org/software/parted/ Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz License: GPLv3+ @@ -36,6 +36,8 @@ Patch7: 0007-fat_op_context_new-free-ctx-remap-and-goto-correct-l.patch Patch8: 0008-hfsplus_cache_from_extent-fix-memleak.patch Patch9: 0009-fat_clobber-set-boot_sector-NULL-and-free-boot_secto.patch +Patch9000: 9000-parted-remove-patch-which-modifid-cyl-size.patch + %description The GNU Parted program allows you to create, destroy, resize, move, and copy hard disk partitions. Parted can be used for creating space @@ -119,6 +121,9 @@ fi %{_libdir}/pkgconfig/libparted*.pc %changelog +* Thu Dec 14 2023 lingsheng - 3.5-2 +- remove patch which modifid cyl-size + * Wed Oct 26 2022 Hongtao Zhang - 3.5-1 - update to 3.5 -- Gitee