]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ublk: report BLK_SPLIT_INTERVAL_CAPABLE
authorCaleb Sander Mateos <csander@purestorage.com>
Fri, 13 Mar 2026 14:47:01 +0000 (07:47 -0700)
committerJens Axboe <axboe@kernel.dk>
Sat, 14 Mar 2026 13:44:30 +0000 (07:44 -0600)
The ublk driver doesn't access request integrity buffers directly, it
only copies them to/from the ublk server in ublk_copy_user_integrity().
ublk_copy_user_integrity() uses bio_for_each_integrity_vec() to walk all
the integrity segments. ublk devices are therefore capable of handling
requests with integrity intervals split across segments. Set
BLK_SPLIT_INTERVAL_CAPABLE in the struct blk_integrity flags for ublk
devices to opt out of the integrity-interval dma_alignment limit.

Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Link: https://patch.msgid.link/20260313144701.1221652-3-kbusch@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index 004f367243b6952d7745bd7d50d2357745cccd10..34ed4f6a02ef26403c3d9238056df3b5e393af99 100644 (file)
@@ -808,7 +808,7 @@ static void ublk_dev_param_basic_apply(struct ublk_device *ub)
 
 static int ublk_integrity_flags(u32 flags)
 {
-       int ret_flags = 0;
+       int ret_flags = BLK_SPLIT_INTERVAL_CAPABLE;
 
        if (flags & LBMD_PI_CAP_INTEGRITY) {
                flags &= ~LBMD_PI_CAP_INTEGRITY;