Introduce provisioning primitives for thinly provisioned storage
From: | Sarthak Kukreti <sarthakkukreti-AT-chromium.org> | |
To: | dm-devel-AT-redhat.com, linux-block-AT-vger.kernel.org, linux-ext4-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-fsdevel-AT-vger.kernel.org | |
Subject: | [PATCH v4 0/4] Introduce provisioning primitives for thinly provisioned storage | |
Date: | Tue, 18 Apr 2023 15:12:03 -0700 | |
Message-ID: | <20230418221207.244685-1-sarthakkukreti@chromium.org> | |
Cc: | Jens Axboe <axboe-AT-kernel.dk>, "Michael S. Tsirkin" <mst-AT-redhat.com>, Jason Wang <jasowang-AT-redhat.com>, Stefan Hajnoczi <stefanha-AT-redhat.com>, Alasdair Kergon <agk-AT-redhat.com>, Mike Snitzer <snitzer-AT-kernel.org>, Christoph Hellwig <hch-AT-infradead.org>, Brian Foster <bfoster-AT-redhat.com>, Theodore Ts'o <tytso-AT-mit.edu>, Andreas Dilger <adilger.kernel-AT-dilger.ca>, Bart Van Assche <bvanassche-AT-google.com>, Daniil Lunev <dlunev-AT-google.com>, "Darrick J. Wong" <djwong-AT-kernel.org> | |
Archive-link: | Article |
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@redhat.com/... 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