summaryrefslogtreecommitdiffstats
path: root/Grow.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-10-20 16:36:03 +1100
committerNeilBrown <neilb@suse.de>2009-10-20 16:36:03 +1100
commit24d40069d7361c53116659a4000b1c6970cba1fb (patch)
tree13557327c63d5723fdac37da0c95f83358bda4ec /Grow.c
parentea0ebe96859ce53230ac28c25e3ab2a8ccd3aa3b (diff)
downloadmdadm-24d40069d7361c53116659a4000b1c6970cba1fb.tar.gz
mdadm-24d40069d7361c53116659a4000b1c6970cba1fb.tar.xz
mdadm-24d40069d7361c53116659a4000b1c6970cba1fb.zip
Grow: reject raid-disks reduction in RAID5 etc before 2.6.32
2.6.31 has some bugs with restarting a RAID5 reduction, so refuse to try unless at least 2.6.32. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Grow.c')
-rw-r--r--Grow.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Grow.c b/Grow.c
index 4bd77d9..1111526 100644
--- a/Grow.c
+++ b/Grow.c
@@ -523,6 +523,14 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
devname);
return 1;
}
+
+ if (raid_disks && raid_disks < array.raid_disks && array.level > 1 &&
+ get_linux_version() < 2006032 &&
+ !check_env("MDADM_FORCE_FEWER")) {
+ fprintf(stderr, Name ": reducing the number of devices is not safe before Linux 2.6.32\n"
+ " Please use a newer kernel\n");
+ return 1;
+ }
sra = sysfs_read(fd, 0, GET_LEVEL);
frozen = freeze_array(sra);
if (frozen < 0) {
@@ -627,7 +635,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
}
}
if (raid_disks)
- /* The find raid6->raid5 conversion
+ /* The final raid6->raid5 conversion
* will reduce the number of disks,
* so now we need to aim higher
*/