dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

Blame SOURCES/Correct-examine-output-for-4kdisks.patch

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