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@xxxxxxxxxx/ [2] v7 (last series): https://lore.kernel.org/linux-fsdevel/20230518223326.18744-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/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@xxxxxxxxxx) Fixes for block device provision limits. - (Suggested by djwong@xxxxxxxxxx) 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