]> www.infradead.org Git - users/hch/misc.git/commitdiff
block: Add bdev atomic write limits helpers
authorJohn Garry <john.g.garry@oracle.com>
Sat, 19 Oct 2024 12:51:08 +0000 (12:51 +0000)
committerJens Axboe <axboe@kernel.dk>
Sat, 19 Oct 2024 22:48:22 +0000 (16:48 -0600)
Add helpers to get atomic write limits for a bdev, so that we don't access
request_queue helpers outside the block layer.

We check if the bdev can actually atomic write in these helpers, so we
can avoid users missing using this check.

Suggested-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
Link: https://lore.kernel.org/r/20241019125113.369994-4-john.g.garry@oracle.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/blkdev.h

index 50c3b959da281684ebd746706ff929266f2fdae3..c2cc3c146d742692d4a4f0bde3edd078f2208815 100644 (file)
@@ -1674,6 +1674,22 @@ static inline bool bdev_can_atomic_write(struct block_device *bdev)
        return true;
 }
 
+static inline unsigned int
+bdev_atomic_write_unit_min_bytes(struct block_device *bdev)
+{
+       if (!bdev_can_atomic_write(bdev))
+               return 0;
+       return queue_atomic_write_unit_min_bytes(bdev_get_queue(bdev));
+}
+
+static inline unsigned int
+bdev_atomic_write_unit_max_bytes(struct block_device *bdev)
+{
+       if (!bdev_can_atomic_write(bdev))
+               return 0;
+       return queue_atomic_write_unit_max_bytes(bdev_get_queue(bdev));
+}
+
 #define DEFINE_IO_COMP_BATCH(name)     struct io_comp_batch name = { }
 
 #endif /* _LINUX_BLKDEV_H */