Hi, This patch series is revision 4 of introducing a new mechanism to pass through provision requests on stacked thinly provisioned storage devices. See [1] for original cover letter. [1] https://lore.kernel.org/lkml/ZDnMl8A1B1+Tfn5S@xxxxxxxxxx/T/#md4f20113c2242755747ae069f84be720a6751012 Changelog: V4: - Fix UNSHARE and KEEP_SIZE handling in blkdev_fallocate. - Split dm-thin support into a separate patch. - Remove ranged provision request handling and adjust io hints to handle provisioning one block at a time. - Add missing provision_supported for dm targets. V3: - Drop FALLOC_FL_PROVISION and use mode == 0 for provision requests. - Drop fs-specific patches; will be sent out in a follow up series. - Fix missing shared block handling for thin snapshots. V2: - Fix stacked limit handling. - Enable provision request handling in dm-snapshot - Don't call truncate_bdev_range if blkdev_fallocate() is called with FALLOC_FL_PROVISION. - Clarify semantics of FALLOC_FL_PROVISION and why it needs to be a separate flag (as opposed to overloading mode == 0). Sarthak Kukreti (4): block: Introduce provisioning primitives dm: Add block provisioning support dm-thin: Add REQ_OP_PROVISION support loop: Add support for provision requests block/blk-core.c | 5 +++ block/blk-lib.c | 53 +++++++++++++++++++++++++ block/blk-merge.c | 18 +++++++++ block/blk-settings.c | 19 +++++++++ block/blk-sysfs.c | 8 ++++ block/bounce.c | 1 + block/fops.c | 25 +++++++++--- drivers/block/loop.c | 42 ++++++++++++++++++++ drivers/md/dm-crypt.c | 5 ++- drivers/md/dm-linear.c | 2 + drivers/md/dm-snap.c | 8 ++++ drivers/md/dm-table.c | 23 +++++++++++ drivers/md/dm-thin.c | 73 ++++++++++++++++++++++++++++++++--- drivers/md/dm.c | 6 +++ include/linux/bio.h | 6 ++- include/linux/blk_types.h | 5 ++- include/linux/blkdev.h | 16 ++++++++ include/linux/device-mapper.h | 17 ++++++++ 18 files changed, 317 insertions(+), 15 deletions(-) -- 2.40.0.634.g4ca3ef3211-goog