[PATCH v9 0/3] [PATCH v9 0/3] Introduce provisioning primitives

From: Sarthak Kukreti
Date: Thu Nov 09 2023 - 20:01:50 EST


Hi,

This patch series is version 9 of the patch series to introduce
block-level provisioning mechanism (original [1]), which is useful for
provisioning space across thinly provisioned storage architectures (loop
devices backed by sparse files, dm-thin devices, virtio-blk). This
series has minimal changes over v8[2], with a couple of patches dropped
(suggested by Dave).

This patch series is rebased from the linux-dm/dm-6.5-provision-support
[3] on to (a12deb44f973 Merge tag 'input-for-v6.7-rc0' ...). The final
patch in the series is a blktest (suggested by Dave in 4) which was used
to test out the provisioning flow for loop devices on sparse files on an
ext4 filesystem.

[1] Original: https://lore.kernel.org/lkml/20220915164826.1396245-1-sarthakkukreti@xxxxxxxxxx/
[2] v8 (last series): https://lore.kernel.org/lkml/20231007012817.3052558-1-sarthakkukreti@xxxxxxxxxxxx/
[3] linux-dm/dm-6.5-provision-suppport tree:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-6.5-provision-support
(with the last two WIP patches for dm-thinpool dropped as per discussion with
maintainers).
[4] https://lore.kernel.org/lkml/ZSXono3GkXhgrZ1T@xxxxxxxxxxxxxxxxxxx/

Changes from v8:
- Dropped fallocate() bugfix: merged separately.
- Dropped patch for unshare intent (suggested by Dave).
- More comments in loop device patch to point out the implementation
constraint and how it affects filesystems with copy-on-write
semantics.
- Added blktest "loop/010" (rebased on top of ) for testing.

Sarthak Kukreti (4):
block: Introduce provisioning primitives
dm: Add block provisioning support
loop: Add support for provision requests
loop/010: Add test for mode 0 fallocate on loop devices

block/blk-core.c | 5 ++++
block/blk-lib.c | 51 +++++++++++++++++++++++++++++++++++
block/blk-merge.c | 18 +++++++++++++
block/blk-settings.c | 19 +++++++++++++
block/blk-sysfs.c | 9 +++++++
block/bounce.c | 1 +
block/fops.c | 5 ++++
drivers/block/loop.c | 39 ++++++++++++++++++++++++---
drivers/md/dm-crypt.c | 4 ++-
drivers/md/dm-linear.c | 1 +
drivers/md/dm-table.c | 23 ++++++++++++++++
drivers/md/dm.c | 7 +++++
include/linux/bio.h | 6 +++--
include/linux/blk_types.h | 5 +++-
include/linux/blkdev.h | 16 +++++++++++
include/linux/device-mapper.h | 17 ++++++++++++
16 files changed, 219 insertions(+), 7 deletions(-)

--
2.39.2