Skip to content

Commit 864466c

Browse files
Li Nanhailan94
authored andcommitted
md: Fix logical_block_size configuration being overwritten
In super_1_validate(), mddev->logical_block_size is directly overwritten with the value from metadata. This causes the previously configured lbs to be lost, making the configuration ineffective. Fix it. Fixes: 62ed1b5 ("md: allow configuring logical block size") Signed-off-by: Li Nan <linan122@huawei.com> Reviewed-by: Yu Kuai <yukuai@fnnas.com> Reviewed-by: Xiao Ni <xni@redhat.com> Link: https://lore.kernel.org/linux-raid/20251226024221.724201-1-linan666@huaweicloud.com Signed-off-by: Yu Kuai <yukuai@fnnas.com>
1 parent 2cc5836 commit 864466c

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

drivers/md/md.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1999,7 +1999,6 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *freshest, struc
19991999
mddev->layout = le32_to_cpu(sb->layout);
20002000
mddev->raid_disks = le32_to_cpu(sb->raid_disks);
20012001
mddev->dev_sectors = le64_to_cpu(sb->size);
2002-
mddev->logical_block_size = le32_to_cpu(sb->logical_block_size);
20032002
mddev->events = ev1;
20042003
mddev->bitmap_info.offset = 0;
20052004
mddev->bitmap_info.space = 0;
@@ -2015,6 +2014,9 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *freshest, struc
20152014

20162015
mddev->max_disks = (4096-256)/2;
20172016

2017+
if (!mddev->logical_block_size)
2018+
mddev->logical_block_size = le32_to_cpu(sb->logical_block_size);
2019+
20182020
if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_BITMAP_OFFSET) &&
20192021
mddev->bitmap_info.file == NULL) {
20202022
mddev->bitmap_info.offset =

0 commit comments

Comments
 (0)