parted/0033-Use-disk-geometry-as-basis-for-ext2-sector-sizes.patch

31 lines
1.3 KiB
Diff

From ac501e86dd95baa6f426cdd1395f2fe2a9c4e92a Mon Sep 17 00:00:00 2001
From: Steven Lang <Steven.Lang@hgst.com>
Date: Thu, 8 Jan 2015 17:22:02 -0800
Subject: [PATCH 33/36] Use disk geometry as basis for ext2 sector sizes.
When creating the geom for probed ext2 based filesystems, the
size was being reported in 512 byte sectors, regardless of what
the actual sector size of the device is.
(cherry picked from commit d15a596a4436a08b9ad9db35729740b6314d536b)
---
libparted/fs/ext2/interface.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libparted/fs/ext2/interface.c b/libparted/fs/ext2/interface.c
index 890a47b..a90c592 100644
--- a/libparted/fs/ext2/interface.c
+++ b/libparted/fs/ext2/interface.c
@@ -41,7 +41,7 @@ _ext2_generic_probe (PedGeometry* geom, int expect_ext_ver)
struct ext2_super_block *sb = (struct ext2_super_block *)(sb_v + 1024);
if (EXT2_SUPER_MAGIC(*sb) == EXT2_SUPER_MAGIC_CONST) {
- PedSector block_size = 1 << (EXT2_SUPER_LOG_BLOCK_SIZE(*sb) + 1);
+ PedSector block_size = (EXT2_MIN_BLOCK_SIZE << (EXT2_SUPER_LOG_BLOCK_SIZE(*sb))) / geom->dev->sector_size;
PedSector block_count = EXT2_SUPER_BLOCKS_COUNT(*sb);
PedSector group_blocks = EXT2_SUPER_BLOCKS_PER_GROUP(*sb);
PedSector group_nr = EXT2_SUPER_BLOCK_GROUP_NR(*sb);
--
2.5.5