md: always update level / chunk_size / layout when writing v1.x metadata.
authorNeilBrown <neilb@suse.de>
Mon, 25 May 2009 23:40:59 +0000 (09:40 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 25 May 2009 23:40:59 +0000 (09:40 +1000)
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>
drivers/md/md.c

index fccc8343a2501dbb8db452ea9e5469df11ef53e1..aa79d55875f051eacbc24a0fec4ae46e9795549b 100644 (file)
@@ -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);