remove patch which modifid cyl-size

(cherry picked from commit 962106340685ed4489341e01db7001dcb2bbdeba)
This commit is contained in:
lingsheng 2023-12-14 11:59:34 +08:00 committed by openeuler-sync-bot
parent 0852d0e10c
commit 46b3361c31
2 changed files with 94 additions and 1 deletions

View File

@ -0,0 +1,88 @@
From bfce75fd13dd72c6300f0ac3d739e40df90f7dce Mon Sep 17 00:00:00 2001
From: lixiaokeng <lixiaokeng@huawei.com>
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<lixiaokeng@huawei.com>
---
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, &sector_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

View File

@ -16,7 +16,7 @@
Summary: The GNU disk partition manipulation program Summary: The GNU disk partition manipulation program
Name: parted Name: parted
Version: 3.5 Version: 3.5
Release: 1 Release: 2
URL: https://www.gnu.org/software/parted/ URL: https://www.gnu.org/software/parted/
Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
License: GPLv3+ 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 Patch8: 0008-hfsplus_cache_from_extent-fix-memleak.patch
Patch9: 0009-fat_clobber-set-boot_sector-NULL-and-free-boot_secto.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 %description
The GNU Parted program allows you to create, destroy, resize, move, The GNU Parted program allows you to create, destroy, resize, move,
and copy hard disk partitions. Parted can be used for creating space and copy hard disk partitions. Parted can be used for creating space
@ -119,6 +121,9 @@ fi
%{_libdir}/pkgconfig/libparted*.pc %{_libdir}/pkgconfig/libparted*.pc
%changelog %changelog
* Thu Dec 14 2023 lingsheng <lingsheng@xfusion.com> - 3.5-2
- remove patch which modifid cyl-size
* Wed Oct 26 2022 Hongtao Zhang <zhanghongtao22@huawei.com> - 3.5-1 * Wed Oct 26 2022 Hongtao Zhang <zhanghongtao22@huawei.com> - 3.5-1
- update to 3.5 - update to 3.5