7 Star 0 Fork 26

src-openEuler/parted

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
9000-parted-remove-patch-which-modifid-cyl-size.patch 3.58 KB
一键复制 编辑 原始数据 按行查看 历史
lingsheng 提交于 2023-12-14 11:59 . remove patch which modifid cyl-size
From bfce75fd13dd72c6300f0ac3d739e40df90f7dce Mon Sep 17 00:00:00 2001
From: lixiaokeng <[email protected]>
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<[email protected]>
---
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
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/parted.git
[email protected]:src-openeuler/parted.git
src-openeuler
parted
parted
master

搜索帮助