summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-05-26 09:40:59 +1000
committerNeilBrown <neilb@suse.de>2009-05-26 09:40:59 +1000
commit62e1e389f87a8839ad83b08c44691d1df8320846 (patch)
treed8915df95d7164188334052b31ffe7ac40aa4e94 /drivers/md
parent59a3759d0fe8d969888c741bb33f4946e4d3750d (diff)
downloadkernel-crypto-62e1e389f87a8839ad83b08c44691d1df8320846.tar.gz
kernel-crypto-62e1e389f87a8839ad83b08c44691d1df8320846.tar.xz
kernel-crypto-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')
-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 fccc8343a25..aa79d55875f 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);