[PATCH v8 0/5] Introduce provisioning primitives

Sarthak Kukreti
2023-10-07T01:28:28Z

Hi,

This patch series is version 8 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 v7[2].

This patch series is rebased from the linux-dm/dm-6.5-provision-support [1] on to
(cac405a3bfa2 Merge tag 'for-6.6-rc3-tag'). In addition, there's an
additional patch to allow passing through an unshare intent via REQ_OP_PROVISION
(suggested by Darrick in [4]).

[1] Original: https://lore.kernel.org/lkml/20220915164826.1396245-1-sarthakkukreti@google.com/
[2] v7 (last series): https://lore.kernel.org/linux-fsdevel/20230518223326.18744-1-sarthakkukreti@chromium.org/
[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/linux-fsdevel/20230522163710.GA11607@frogsfrogsfrogs/

Changes from v7:
- Drop dm-thinpool (will be independently developed with snapshot
support) and dm-snapshot (will not be supported) from the series.
- (By snitzer@kernel.org) Fixes for block device provision limits.
- (Suggested by djwong@kernel.org) Add mechanism to pass unshare intent
via REQ_OP_PROVISION

Sarthak Kukreti (5):
block: Don't invalidate pagecache for invalid falloc modes
block: Introduce provisioning primitives
loop: Add support for provision requests
dm: Add block provisioning support
block: Pass unshare intent via REQ_OP_PROVISION

block/blk-core.c | 5 +++
block/blk-lib.c | 55 ++++++++++++++++++++++++++++++++
block/blk-merge.c | 18 +++++++++++
block/blk-settings.c | 19 +++++++++++
block/blk-sysfs.c | 9 ++++++
block/bounce.c | 1 +
block/fops.c | 33 ++++++++++++++++----
drivers/block/loop.c | 59 ++++++++++++++++++++++++++++++++---
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 | 8 ++++-
include/linux/blkdev.h | 17 ++++++++++
include/linux/device-mapper.h | 17 ++++++++++
16 files changed, 268 insertions(+), 14 deletions(-)

--
2.42.0.609.gbb76f46606-goog