summaryrefslogtreecommitdiff
path: root/Grow.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2013-05-21 16:32:00 +1000
committerNeilBrown <neilb@suse.de>2013-05-22 12:26:19 +1000
commitc4b26c643dd8dd4e897288345dad7ecbe318e243 (patch)
tree14ae89b8e83975eceeb4f68c60594f5f5f9a0479 /Grow.c
parent63c12c89d4bed2cfbf9d263b968563741bb37d2c (diff)
Grow: allow metadata to indicate that changing data_offset not supported.
If space_after and space_before are zero (the default) then assume that metadata doesn't support changing data_offset. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Grow.c')
-rw-r--r--Grow.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Grow.c b/Grow.c
index 24bf6a9b..3bd0b3ed 100644
--- a/Grow.c
+++ b/Grow.c
@@ -2179,6 +2179,11 @@ static int set_new_data_offset(struct mdinfo *sra, struct supertype *st,
st2->ss->getinfo_super(st2, &info2, NULL);
st2->ss->free_super(st2);
free(st2);
+ if (info2.space_before == 0 &&
+ info2.space_after == 0) {
+ /* Metadata doesn't support data_offset changes */
+ return 1;
+ }
if (delta_disks < 0) {
/* Don't need any space as array is shrinking
* just move data_offset up by min