dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

Blame SOURCES/Correct-examine-output-for-4k-disks.patch

dd3a91
commit 84918897ee8bb450ea09f7c95b9da44df8e925e4
dd3a91
Author: Maksymilian Kunt <maksymilian.kunt@intel.com>
dd3a91
Date:   Tue May 9 14:03:27 2017 +0200
dd3a91
dd3a91
    IMSM: Correct --examine output for 4k disks
dd3a91
    
dd3a91
    "Array Size" and "Per Dev Size" are incorrect for disks with sector size
dd3a91
    different than 512B.
dd3a91
    
dd3a91
    Calculate "Array Size" and "Per Dev Size" based on sector size. Additionally
dd3a91
    print "Sector Size".
dd3a91
    
dd3a91
    Signed-off-by: Maksymilian Kunt <maksymilian.kunt@intel.com>
dd3a91
    Signed-off-by: Mariusz Dabrowski <mariusz.dabrowski@intel.com>
dd3a91
    Signed-off-by: Jes Sorensen <jsorensen@fb.com>
dd3a91
dd3a91
diff --git a/super-intel.c b/super-intel.c
dd3a91
index ba6f810..8ca80d3 100644
dd3a91
--- a/super-intel.c
dd3a91
+++ b/super-intel.c
dd3a91
@@ -1482,13 +1482,16 @@ static void print_imsm_dev(struct intel_super *super,
dd3a91
 		       ord & IMSM_ORD_REBUILD ? " (out-of-sync)" : "");
dd3a91
 	} else
dd3a91
 		printf("      This Slot : ?\n");
dd3a91
+	printf("    Sector Size : %u\n", super->sector_size);
dd3a91
 	sz = __le32_to_cpu(dev->size_high);
dd3a91
 	sz <<= 32;
dd3a91
 	sz += __le32_to_cpu(dev->size_low);
dd3a91
-	printf("     Array Size : %llu%s\n", (unsigned long long)sz,
dd3a91
+	printf("     Array Size : %llu%s\n",
dd3a91
+		   (unsigned long long)sz * 512 / super->sector_size,
dd3a91
 	       human_size(sz * 512));
dd3a91
 	sz = blocks_per_member(map);
dd3a91
-	printf("   Per Dev Size : %llu%s\n", (unsigned long long)sz,
dd3a91
+	printf("   Per Dev Size : %llu%s\n",
dd3a91
+		   (unsigned long long)sz * 512 / super->sector_size,
dd3a91
 	       human_size(sz * 512));
dd3a91
 	printf("  Sector Offset : %llu\n",
dd3a91
 		pba_of_lba0(map));