diff options
author | NeilBrown <neilb@suse.de> | 2009-10-20 16:36:03 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-10-20 16:36:03 +1100 |
commit | 24d40069d7361c53116659a4000b1c6970cba1fb (patch) | |
tree | 13557327c63d5723fdac37da0c95f83358bda4ec | |
parent | ea0ebe96859ce53230ac28c25e3ab2a8ccd3aa3b (diff) | |
download | mdadm-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>
-rw-r--r-- | Grow.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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 */ |