Reshaping a 3-disk RAID5 to 4-disk RAID6 will cause a hang of
the resync after the grow.
Adding a spare disk to avoid degrading the array when growing
is successful, but not successful when supplying a backup file
on the command line. If the reshape job is not already running,
set the sync_max value to max.
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
err = err ?: sysfs_set_num(sra, NULL, "sync_max", sync_max_to_set);
if (!already_running && err == 0) {
int cnt = 5;
+ int err2;
do {
err = sysfs_set_str(sra, NULL, "sync_action",
"reshape");
- if (err)
+ err2 = sysfs_set_str(sra, NULL, "sync_max",
+ "max");
+ if (err || err2)
sleep(1);
- } while (err && errno == EBUSY && cnt-- > 0);
+ } while (err && err2 && errno == EBUSY && cnt-- > 0);
}
return err;
}