summaryrefslogtreecommitdiffstats
path: root/mdstat.c
diff options
context:
space:
mode:
authorJakub Radtke <jakub.radtke@intel.com>2021-01-15 06:46:54 +0100
committerJes Sorensen <jsorensen@fb.com>2021-03-09 23:17:39 +0100
commitb090e910756ea1165be5ac879746ab4bb83a2f91 (patch)
treeb50fb1db0288b4762d05977b6bf44150867596d8 /mdstat.c
parentIt should be FAILED when raid has not enough active disks (diff)
downloadmdadm-b090e910756ea1165be5ac879746ab4bb83a2f91.tar.xz
mdadm-b090e910756ea1165be5ac879746ab4bb83a2f91.zip
Modify mdstat parsing for volumes with the bitmap
Current mdstat read functionality is not working correctly for the volumes with the write-intent bitmap. It affects rebuild and reshape use cases. Signed-off-by: Jakub Radtke <jakub.radtke@intel.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Diffstat (limited to 'mdstat.c')
-rw-r--r--mdstat.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mdstat.c b/mdstat.c
index dd96cca7..2fd792c5 100644
--- a/mdstat.c
+++ b/mdstat.c
@@ -191,6 +191,12 @@ struct mdstat_ent *mdstat_read(int hold, int start)
else if (strcmp(w, "inactive") == 0) {
ent->active = 0;
in_devs = 1;
+ } else if (strcmp(w, "bitmap:") == 0) {
+ /* We need to stop parsing here;
+ * otherwise, ent->raid_disks will be
+ * overwritten by the wrong value.
+ */
+ break;
} else if (ent->active > 0 &&
ent->level == NULL &&
w[0] != '(' /*readonly*/) {