linux-yocto/drivers
Shin'ichiro Kawasaki 64619652f4 dm: split write BIOs on zone boundaries when zone append is not emulated
commit 675f940576 upstream.

Commit 2df7168717 ("dm: Always split write BIOs to zoned device
limits") updates the device-mapper driver to perform splits for the
write BIOs. However, it did not address the cases where DM targets do
not emulate zone append, such as in the cases of dm-linear or dm-flakey.
For these targets, when the write BIOs span across zone boundaries, they
trigger WARN_ON_ONCE(bio_straddles_zones(bio)) in
blk_zone_wplug_handle_write(). This results in I/O errors. The errors
are reproduced by running blktests test case zbd/004 using zoned
dm-linear or dm-flakey devices.

To avoid the I/O errors, handle the write BIOs regardless whether DM
targets emulate zone append or not, so that all write BIOs are split at
zone boundaries. For that purpose, drop the check for zone append
emulation in dm_zone_bio_needs_split(). Its argument 'md' is no longer
used then drop it also.

Fixes: 2df7168717 ("dm: Always split write BIOs to zoned device limits")
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
Link: https://lore.kernel.org/r/20250717103539.37279-1-shinichiro.kawasaki@wdc.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-08-20 18:41:44 +02:00
..
accel habanalabs: fix UAF in export_dmabuf() 2025-08-20 18:40:49 +02:00
accessibility
acpi ACPI: APEI: GHES: add TAINT_MACHINE_CHECK on GHES panic path 2025-08-20 18:41:00 +02:00
amba
android binder: Fix selftest page indexing 2025-08-20 18:40:58 +02:00
ata ata: libata-sata: Add link_power_management_supported sysfs attribute 2025-08-20 18:41:43 +02:00
atm
auxdisplay
base regmap: irq: Free the regmap-irq mutex 2025-08-20 18:41:32 +02:00
bcma
block ublk: check for unprivileged daemon on each I/O fetch 2025-08-20 18:41:33 +02:00
bluetooth Bluetooth: btusb: Add support for variant of RTL8851BE (USB ID 13d3:3601) 2025-08-20 18:41:05 +02:00
bus bus: mhi: host: pci_generic: Disable runtime PM for QDU100 2025-08-20 18:40:57 +02:00
cache
cdrom
cdx
char ipmi: Fix strcpy source and destination the same 2025-08-20 18:41:31 +02:00
clk clk: qcom: dispcc-sm8750: Fix setting rate byte and pixel clocks 2025-08-20 18:41:36 +02:00
clocksource
comedi comedi: fix race between polling and detaching 2025-08-20 18:41:37 +02:00
connector
counter
cpufreq cpufreq: intel_pstate: Add Granite Rapids support in no-HWP mode 2025-08-20 18:40:58 +02:00
cpuidle cpuidle: governors: menu: Avoid using invalid recent intervals data 2025-08-20 18:40:51 +02:00
crypto crypto: ccp - Add missing bootloader info reg for pspv6 2025-08-20 18:41:27 +02:00
cxl cxl/edac: Fix wrong dpa checking for PPR operation 2025-08-15 16:39:06 +02:00
dax
dca
devfreq PM / devfreq: governor: Replace sscanf() with kstrtoul() in set_freq_store() 2025-08-20 18:40:58 +02:00
dio
dma dmaengine: stm32-dma: configure next sg only if there are more than 2 sgs 2025-08-20 18:41:25 +02:00
dma-buf udmabuf: fix vmap missed offset page 2025-08-15 16:38:36 +02:00
dpll
edac EDAC/ie31200: Enable support for Core i5-14600 and i7-14700 2025-08-20 18:41:02 +02:00
eisa
extcon
firewire
firmware firmware: arm_scmi: Convert to SYSTEM_SLEEP_PM_OPS 2025-08-20 18:41:43 +02:00
fpga
fsi
fwctl
gnss
gpio gpio: tps65912: check the return value of regmap_update_bits() 2025-08-20 18:40:59 +02:00
gpu drm/amd/display: Allow DCN301 to clear update flags 2025-08-20 18:41:43 +02:00
greybus
hid HID: rate-limit hid_warn to prevent log flooding 2025-08-20 18:41:26 +02:00
hsi
hte
hv Drivers: hv: Use nested hypercall for post message and signal event 2025-07-15 06:24:16 +00:00
hwmon hwmon: (emc2305) Set initial PWM minimum value during probe based on thermal state 2025-08-20 18:41:23 +02:00
hwspinlock
hwtracing
i2c i2c: core: Fix double-free of fwnode in i2c_unregister_device() 2025-08-20 18:41:41 +02:00
i3c i3c: master: Initialize ret in i3c_i2c_notifier_call() 2025-08-20 18:41:29 +02:00
idle intel_idle: Allow loading ACPI tables for any family 2025-08-20 18:40:51 +02:00
iio iio: adc: ad7768-1: Ensure SYNC_IN pulse minimum timing requirement 2025-08-20 18:41:04 +02:00
infiniband RDMA/siw: Fix the sendmsg byte count in siw_tcp_sendpages 2025-08-20 18:41:42 +02:00
input Input updates for v6.16-rc6 2025-07-20 08:53:58 -07:00
interconnect interconnect: qcom: sc8180x: specify num_nodes 2025-08-15 16:38:35 +02:00
iommu iommufd: Prevent ALIGN() overflow 2025-08-20 18:41:36 +02:00
ipack
irqchip irqchip/mvebu-gicp: Use resource_size() for ioremap() 2025-08-20 18:41:43 +02:00
isdn
leds leds: leds-lp50xx: Handle reg to get correct multi_index 2025-08-20 18:41:25 +02:00
macintosh
mailbox
mcb
md dm: split write BIOs on zone boundaries when zone append is not emulated 2025-08-20 18:41:44 +02:00
media media: i2c: vd55g1: Fix return code in vd55g1_enable_streams error path 2025-08-20 18:41:42 +02:00
memory
memstick memstick: core: Zero initialize id_reg in h_memstick_read_dev_id() 2025-07-16 12:01:09 +02:00
message
mfd mfd: axp20x: Set explicit ID for AXP313 regulator 2025-08-20 18:41:22 +02:00
misc misc: rtsx: usb: Ensure mmc child device is active when card is present 2025-08-20 18:41:37 +02:00
mmc mmc: sdhci-esdhc-imx: Don't change pinctrl in suspend if wakeup source 2025-08-20 18:41:02 +02:00
most
mtd mtd: rawnand: atmel: set pmecc data setup time 2025-08-15 16:39:13 +02:00
mux
net hv_netvsc: Fix panic during namespace deletion with VF 2025-08-20 18:41:40 +02:00
nfc
ntb
nubus
nvdimm
nvme nvme-tcp: log TLS handshake failures at error level 2025-08-20 18:40:54 +02:00
nvmem nvmem: layouts: u-boot-env: remove crc32 endianness conversion 2025-07-16 16:51:04 +02:00
of
opp
parisc
parport
pci PCI: dw-rockchip: Delay link training after hot reset in EP mode 2025-08-20 18:41:26 +02:00
pcmcia
peci
perf perf/arm: Add missing .suppress_bind_attrs 2025-08-20 18:41:12 +02:00
phy phy: rockchip-pcie: Enable all four lanes if required 2025-08-20 18:41:22 +02:00
pinctrl pinctrl: stm32: Manage irq affinity settings 2025-08-20 18:41:26 +02:00
platform platform/chrome: cros_ec_typec: Defer probe on missing EC parent 2025-08-20 18:41:04 +02:00
pmdomain imx8m-blk-ctrl: set ISI panic write hurry level 2025-08-20 18:41:03 +02:00
pnp
power power: supply: qcom_battmgr: Add lithium-polymer entry 2025-08-20 18:41:25 +02:00
powercap powercap: dtpm_cpu: Fix NULL pointer dereference in get_pd_power_uw() 2025-08-15 16:38:31 +02:00
pps pps: clients: gpio: fix interrupt handling order in remove path 2025-08-20 18:41:01 +02:00
ps3
ptp ptp: Use ratelimite for freerun error message 2025-08-20 18:41:19 +02:00
pwm
rapidio
ras
regulator
remoteproc remoteproc: imx_rproc: skip clock enable when M-core is managed by the SCU 2025-08-20 18:40:57 +02:00
reset reset: brcmstb: Enable reset drivers for ARCH_BCM2835 2025-08-20 18:41:01 +02:00
rpmsg
rtc rtc: ds1307: remove clear of oscillator stop flag (OSF) in probe 2025-08-20 18:41:33 +02:00
s390 s390/sclp: Use monotonic clock in sclp_sync_wait() 2025-08-20 18:41:06 +02:00
sbus
scsi scsi: lpfc: Remove redundant assignment to avoid memory leak 2025-08-20 18:41:33 +02:00
sh
siox
slimbus
soc soc: qcom: mdt_loader: Actually use the e_phoff 2025-08-20 18:41:03 +02:00
soundwire soundwire: Move handle_nested_irq outside of sdw_dev_lock 2025-08-20 18:41:28 +02:00
spi spi: cs42l43: Property entry should be a null-terminated array 2025-08-15 16:39:24 +02:00
spmi
ssb
staging staging: gpib: Add init response codes for new ni-usb-hs+ 2025-08-20 18:40:56 +02:00
target scsi: target: core: Generate correct identifiers for PR OUT transport IDs 2025-08-20 18:41:30 +02:00
tc
tee
thermal thermal: sysfs: Return ENODATA instead of EAGAIN for reads 2025-08-20 18:41:00 +02:00
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-08-20 18:41:37 +02:00
tty tty: serial: fix print format specifiers 2025-08-20 18:41:03 +02:00
ufs scsi: ufs: core: Fix interrupt handling for MCQ Mode 2025-08-20 18:41:33 +02:00
uio
usb cdc-acm: fix race between initial clearing halt and open 2025-08-20 18:41:37 +02:00
vdpa vdpa: Fix IDR memory leak in VDUSE module exit 2025-08-15 16:39:15 +02:00
vfio vfio/mlx5: fix possible overflow in tracking max message size 2025-08-20 18:41:30 +02:00
vhost vhost: fail early when __vhost_add_used() fails 2025-08-20 18:41:21 +02:00
video fbdev: nvidiafb: add depends on HAS_IOPORT 2025-08-20 18:41:40 +02:00
virt fix locking in efi_secret_unlink() 2025-08-20 18:40:56 +02:00
virtio
w1
watchdog watchdog: iTCO_wdt: Report error if timeout configuration fails 2025-08-20 18:41:23 +02:00
xen xen/gntdev: remove struct gntdev_copy_batch from stack 2025-08-15 16:38:47 +02:00
zorro
Kconfig
Makefile