Commit de09bcb8 authored by Jens Axboe's avatar Jens Axboe
Browse files

Merge tag 'md-6.17-20250917' of...

Merge tag 'md-6.17-20250917' of https://git.kernel.org/pub/scm/linux/kernel/git/mdraid/linux into block-6.17

Pull MD fixes from Yu Kuai:

"For 6.17 on drivers supporting write zeros, raid{0,1,10,5} are broken
 and can't be assembled."

* tag 'md-6.17-20250917' of https://git.kernel.org/pub/scm/linux/kernel/git/mdraid/linux:
  md: init queue_limits->max_hw_wzeroes_unmap_sectors parameter
parents 743bf030 f0bd0383
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ static int linear_set_limits(struct mddev *mddev)
	md_init_stacking_limits(&lim);
	lim.max_hw_sectors = mddev->chunk_sectors;
	lim.max_write_zeroes_sectors = mddev->chunk_sectors;
	lim.max_hw_wzeroes_unmap_sectors = mddev->chunk_sectors;
	lim.io_min = mddev->chunk_sectors << 9;
	err = mddev_stack_rdev_limits(mddev, &lim, MDDEV_STACK_INTEGRITY);
	if (err)
+1 −0
Original line number Diff line number Diff line
@@ -382,6 +382,7 @@ static int raid0_set_limits(struct mddev *mddev)
	md_init_stacking_limits(&lim);
	lim.max_hw_sectors = mddev->chunk_sectors;
	lim.max_write_zeroes_sectors = mddev->chunk_sectors;
	lim.max_hw_wzeroes_unmap_sectors = mddev->chunk_sectors;
	lim.io_min = mddev->chunk_sectors << 9;
	lim.io_opt = lim.io_min * mddev->raid_disks;
	lim.chunk_sectors = mddev->chunk_sectors;
+1 −0
Original line number Diff line number Diff line
@@ -3211,6 +3211,7 @@ static int raid1_set_limits(struct mddev *mddev)

	md_init_stacking_limits(&lim);
	lim.max_write_zeroes_sectors = 0;
	lim.max_hw_wzeroes_unmap_sectors = 0;
	lim.features |= BLK_FEAT_ATOMIC_WRITES;
	err = mddev_stack_rdev_limits(mddev, &lim, MDDEV_STACK_INTEGRITY);
	if (err)
+1 −0
Original line number Diff line number Diff line
@@ -4008,6 +4008,7 @@ static int raid10_set_queue_limits(struct mddev *mddev)

	md_init_stacking_limits(&lim);
	lim.max_write_zeroes_sectors = 0;
	lim.max_hw_wzeroes_unmap_sectors = 0;
	lim.io_min = mddev->chunk_sectors << 9;
	lim.chunk_sectors = mddev->chunk_sectors;
	lim.io_opt = lim.io_min * raid10_nr_stripes(conf);
+1 −0
Original line number Diff line number Diff line
@@ -7732,6 +7732,7 @@ static int raid5_set_limits(struct mddev *mddev)
	lim.features |= BLK_FEAT_RAID_PARTIAL_STRIPES_EXPENSIVE;
	lim.discard_granularity = stripe;
	lim.max_write_zeroes_sectors = 0;
	lim.max_hw_wzeroes_unmap_sectors = 0;
	mddev_stack_rdev_limits(mddev, &lim, 0);
	rdev_for_each(rdev, mddev)
		queue_limits_stack_bdev(&lim, rdev->bdev, rdev->new_data_offset,