summaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-05-26 01:40:59 +0200
committerNeilBrown <neilb@suse.de>2009-05-26 01:40:59 +0200
commit62e1e389f87a8839ad83b08c44691d1df8320846 (patch)
treed8915df95d7164188334052b31ffe7ac40aa4e94 /drivers/md/md.c
parentLinux 2.6.30-rc7 (diff)
downloadlinux-62e1e389f87a8839ad83b08c44691d1df8320846.tar.xz
linux-62e1e389f87a8839ad83b08c44691d1df8320846.zip
md: always update level / chunk_size / layout when writing v1.x metadata.
We previously didn't update these fields when writing the metadata because they could never change. They can now, so we better write them. v0.90 metadata always updated these fields. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index fccc8343a250..aa79d55875f0 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1375,6 +1375,9 @@ static void super_1_sync(mddev_t *mddev, mdk_rdev_t *rdev)
sb->raid_disks = cpu_to_le32(mddev->raid_disks);
sb->size = cpu_to_le64(mddev->dev_sectors);
+ sb->chunksize = cpu_to_le32(mddev->chunk_size >> 9);
+ sb->level = cpu_to_le32(mddev->level);
+ sb->layout = cpu_to_le32(mddev->layout);
if (mddev->bitmap && mddev->bitmap_file == NULL) {
sb->bitmap_offset = cpu_to_le32((__u32)mddev->bitmap_offset);