Commit 2f5a65ef authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: add a bdev_limits helper



Add a helper to get the queue_limits from the bdev without having to
poke into the request_queue.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJohn Garry <john.g.garry@oracle.com>
Link: https://lore.kernel.org/r/20241029141937.249920-1-hch@lst.de


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e4e535bf
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -411,10 +411,9 @@ struct bio *bio_split_zone_append(struct bio *bio,
 */
struct bio *bio_split_to_limits(struct bio *bio)
{
	const struct queue_limits *lim = &bdev_get_queue(bio->bi_bdev)->limits;
	unsigned int nr_segs;

	return __bio_split_to_limits(bio, lim, &nr_segs);
	return __bio_split_to_limits(bio, bdev_limits(bio->bi_bdev), &nr_segs);
}
EXPORT_SYMBOL(bio_split_to_limits);

+1 −1
Original line number Diff line number Diff line
@@ -661,7 +661,7 @@ EXPORT_SYMBOL(blk_stack_limits);
void queue_limits_stack_bdev(struct queue_limits *t, struct block_device *bdev,
		sector_t offset, const char *pfx)
{
	if (blk_stack_limits(t, &bdev_get_queue(bdev)->limits,
	if (blk_stack_limits(t, bdev_limits(bdev),
			get_start_sect(bdev) + offset))
		pr_notice("%s: Warning: Device %pg is misaligned\n",
			pfx, bdev);
+2 −2
Original line number Diff line number Diff line
@@ -3360,7 +3360,7 @@ static int cache_iterate_devices(struct dm_target *ti,
static void disable_passdown_if_not_supported(struct cache *cache)
{
	struct block_device *origin_bdev = cache->origin_dev->bdev;
	struct queue_limits *origin_limits = &bdev_get_queue(origin_bdev)->limits;
	struct queue_limits *origin_limits = bdev_limits(origin_bdev);
	const char *reason = NULL;

	if (!cache->features.discard_passdown)
@@ -3382,7 +3382,7 @@ static void disable_passdown_if_not_supported(struct cache *cache)
static void set_discard_limits(struct cache *cache, struct queue_limits *limits)
{
	struct block_device *origin_bdev = cache->origin_dev->bdev;
	struct queue_limits *origin_limits = &bdev_get_queue(origin_bdev)->limits;
	struct queue_limits *origin_limits = bdev_limits(origin_bdev);

	if (!cache->features.discard_passdown) {
		/* No passdown is done so setting own virtual limits */
+2 −2
Original line number Diff line number Diff line
@@ -2020,7 +2020,7 @@ static void clone_resume(struct dm_target *ti)
static void disable_passdown_if_not_supported(struct clone *clone)
{
	struct block_device *dest_dev = clone->dest_dev->bdev;
	struct queue_limits *dest_limits = &bdev_get_queue(dest_dev)->limits;
	struct queue_limits *dest_limits = bdev_limits(dest_dev);
	const char *reason = NULL;

	if (!test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags))
@@ -2041,7 +2041,7 @@ static void disable_passdown_if_not_supported(struct clone *clone)
static void set_discard_limits(struct clone *clone, struct queue_limits *limits)
{
	struct block_device *dest_bdev = clone->dest_dev->bdev;
	struct queue_limits *dest_limits = &bdev_get_queue(dest_bdev)->limits;
	struct queue_limits *dest_limits = bdev_limits(dest_bdev);

	if (!test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags)) {
		/* No passdown is done so we set our own virtual limits */
+1 −1
Original line number Diff line number Diff line
@@ -2842,7 +2842,7 @@ static void disable_discard_passdown_if_not_supported(struct pool_c *pt)
{
	struct pool *pool = pt->pool;
	struct block_device *data_bdev = pt->data_dev->bdev;
	struct queue_limits *data_limits = &bdev_get_queue(data_bdev)->limits;
	struct queue_limits *data_limits = bdev_limits(data_bdev);
	const char *reason = NULL;

	if (!pt->adjusted_pf.discard_passdown)
Loading