This patch series implements the new "zloop" zoned block device driver which allows creating zoned block devices using one regular file per zone as backing storage. This driver is an alternative to the RUST rublk driver which provide a similar functionality using ublk (See https://github.com/ublk-org/rublk.git). However, zloop is far simpler to use (a single shell command to setup and teardown a device) and does not have any user space dependencies. These characteristics make zloop a better solution for integration in test environments (such as xfstests) using small VMs. zloop and rublk performance is generally comparable. zloop is a bit faster for large sequential write operations than rublk, while rublk is faster for small zone-random write IOs. The first patch implements the "zloop" zoned block device driver under drivers/block. The second patch adds documentation for this driver (overview and usage examples). About half of the code of the first patch is from Christoph Hellwig. Damien Le Moal (2): block: new zoned loop block device driver Documentation: Document the new zoned loop block device driver Changes from v2: - Rebased on 6.15-rc1 - Some corrections of the documentation Changes from v1: - Corrected Kconfig description in patch 1 (outdated example was shown) - Added missing request sector update on completion of zone append request (I had not pushed that...) - Added reference to the documentation in the kconfig entry in patch 2 Damien Le Moal (2): block: new zoned loop block device driver Documentation: Document the new zoned loop block device driver Documentation/admin-guide/blockdev/index.rst | 1 + .../admin-guide/blockdev/zoned_loop.rst | 169 ++ MAINTAINERS | 8 + drivers/block/Kconfig | 19 + drivers/block/Makefile | 1 + drivers/block/zloop.c | 1385 +++++++++++++++++ 6 files changed, 1583 insertions(+) create mode 100644 Documentation/admin-guide/blockdev/zoned_loop.rst create mode 100644 drivers/block/zloop.c -- 2.49.0