Linux 7.0 Block Changes Land, Bounce Buffer DIO For Stable Pages
#Hardware

Linux 7.0 Block Changes Land, Bounce Buffer DIO For Stable Pages

Hardware Reporter
2 min read

Linux 7.0 brings significant block device improvements including batch I/O dispatch for ublk, integrity data support, async_depth queue attribute fixes, and crucial bounce buffering for Direct I/O on stable pages to prevent data corruption during I/O operations.

Linux 7.0 Block Changes Land, Bounce Buffer DIO For Stable Pages

Written by Michael Larabel in Linux Storage on 10 February 2026 at 09:09 AM EST.

Add A Comment

In addition to the BPF filtering support for IO_uring that was merged on Monday, the other block device changes and IO_uring updates were also merged for the newly-opened Linux 7.0 merge window. The block and IO_uring updates were merged to Linux 7.0 alongside that (c)BPF filtering work sent in separately.

The block merge landed:

  • Batch I/O dispatch for ublk to provide greater performance for the user-space block device driver framework.
  • Support for integrity data for ublk along with other improvements.
  • An async_depth queue attribute is added to resolve a performance regression.
  • The MD code fixes an I/O hang with degraded RAID arrays with llbitmap.
  • Improving the secure erase performance for some storage devices.

Meanwhile this pull added support for bounce buffering of Direct I/O for stable pages. That bounce buffering of DIO for stable pages is described as:

"This series tries to address the problem that under I/O pages can be modified during direct I/O, even when the device or file system require stable pages during I/O to calculate checksums, parity or data operations. It does so by adding block layer helpers to bounce buffer an iov_iter into a bio, then wires that up in iomap and ultimately XFS. The reason that the file system even needs to know about it, is because reads need a user context to copy the data back, and the infrastructure to defer ioends to a workqueue currently sits in XFS. I'm going to look into moving that into ioend and enabling it for other file systems. Additionally btrfs already has its own infrastructure for this, and actually an urgent need to bounce buffer, so this should be useful there and could be wired up easily. In fact the idea comes from patches by Qu that did this in btrfs. This patch fixes all but one xfstests failures on T10 PI capable devices (generic/095 seems to have issues with a mix of mmap and splice still, I'm looking into that separately), and make qemu VMs running Windows, or Linux with swap enabled fine on an XFS file on a device using PI."

There was also the IO_uring merge separate from the cBPF filtering work. That IO_uring code brought clean-ups, improving IOPOLL by using a doubly linked list for managing completions, improved restriction setup and checking, support for a non-circular submission queue, and other improvements.

Add A Comment

Comments

Loading comments...