]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
block: add a bdev_has_integrity_csum helper
authorChristoph Hellwig <hch@lst.de>
Mon, 23 Feb 2026 13:20:03 +0000 (05:20 -0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 9 Mar 2026 13:47:02 +0000 (07:47 -0600)
Factor out a helper to see if the block device has an integrity checksum
from bdev_stable_writes so that it can be reused for other checks.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Tested-by: Anuj Gupta <anuj20.g@samsung.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/blkdev.h

index d463b9b5a0a59f4327ff1bbd078ac63e09915d2e..dec0acaed6e6bf6b7a17a82178a3fbdc4790f88a 100644 (file)
@@ -1477,14 +1477,18 @@ static inline bool bdev_synchronous(struct block_device *bdev)
        return bdev->bd_disk->queue->limits.features & BLK_FEAT_SYNCHRONOUS;
 }
 
-static inline bool bdev_stable_writes(struct block_device *bdev)
+static inline bool bdev_has_integrity_csum(struct block_device *bdev)
 {
-       struct request_queue *q = bdev_get_queue(bdev);
+       struct queue_limits *lim = bdev_limits(bdev);
 
-       if (IS_ENABLED(CONFIG_BLK_DEV_INTEGRITY) &&
-           q->limits.integrity.csum_type != BLK_INTEGRITY_CSUM_NONE)
-               return true;
-       return q->limits.features & BLK_FEAT_STABLE_WRITES;
+       return IS_ENABLED(CONFIG_BLK_DEV_INTEGRITY) &&
+               lim->integrity.csum_type != BLK_INTEGRITY_CSUM_NONE;
+}
+
+static inline bool bdev_stable_writes(struct block_device *bdev)
+{
+       return bdev_has_integrity_csum(bdev) ||
+               (bdev_limits(bdev)->features & BLK_FEAT_STABLE_WRITES);
 }
 
 static inline bool blk_queue_write_cache(struct request_queue *q)