summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-11-06 15:19:39 +1100
committerNeilBrown <neilb@suse.de>2009-11-06 15:19:39 +1100
commitd2505cff5a3ca88de4fc7030fca40a8e069b18f6 (patch)
tree90a98420a8fea2308a3adfffea2d9120709ebef5
parent1b13faf757bcc352e7b60d07dc93c0554e0c1b57 (diff)
downloadmdadm-d2505cff5a3ca88de4fc7030fca40a8e069b18f6.tar.gz
Grow: restrict to 2.6.32
2.6.31 has a bug which can lead to unsafe reshaping. So only allow a reshape with 2.6.32. When the required fixed get into 2.6.31.y, this can be relaxed slightly Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--Grow.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Grow.c b/Grow.c
index 8e6e7f7..4423b78 100644
--- a/Grow.c
+++ b/Grow.c
@@ -871,6 +871,12 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
ndata--;
}
+ if (odata == ndata &&
+ get_linux_version() < 2006032) {
+ fprintf(stderr, Name ": in-place reshape is not safe before 2.6.32, sorry.\n");
+ break;
+ }
+
/* Check that we can hold all the data */
size = ndata * array.size;
get_dev_size(fd, NULL, &array_size);