summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMariusz Tkaczyk <mariusz.tkaczyk@intel.com>2018-08-01 15:29:31 +0200
committerJes Sorensen <jsorensen@fb.com>2018-08-01 11:57:43 -0400
commit84d88fd885de05a5f126a1f3661687c541001e39 (patch)
treebd58d568f1a23a7790ea47f9961ca8c0a3b78a0a
parent18552ef041221d79a30c69d22bc2b68f1c216e97 (diff)
downloadmdadm-84d88fd885de05a5f126a1f3661687c541001e39.tar.gz
Grow: Frozen array can't be idle
When array is frozen but there is no recovery/reshape in mdstat, check_idle() will not return error but grow countinue can still working. Check is array frozen. Do not use sysfs sync_action parameter because it doesn't exist for Raid0, simply check metadata_version in mdstat. Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@intel.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com>
-rw-r--r--Grow.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Grow.c b/Grow.c
index 30c5fa91..4436a4d6 100644
--- a/Grow.c
+++ b/Grow.c
@@ -754,7 +754,8 @@ static int check_idle(struct supertype *st)
for (e = ent ; e; e = e->next) {
if (!is_container_member(e, container))
continue;
- if (e->percent >= 0) {
+ /* frozen array is not idle*/
+ if (e->percent >= 0 || e->metadata_version[9] == '-') {
is_idle = 0;
break;
}