Skip to content

Commit 2f5a65e

Browse files
Christoph Hellwigaxboe
authored andcommitted
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: Christoph Hellwig <[email protected]> Reviewed-by: John Garry <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent e4e535b commit 2f5a65e

File tree

7 files changed

+19
-18
lines changed

7 files changed

+19
-18
lines changed

block/blk-merge.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,10 +411,9 @@ struct bio *bio_split_zone_append(struct bio *bio,
411411
*/
412412
struct bio *bio_split_to_limits(struct bio *bio)
413413
{
414-
const struct queue_limits *lim = &bdev_get_queue(bio->bi_bdev)->limits;
415414
unsigned int nr_segs;
416415

417-
return __bio_split_to_limits(bio, lim, &nr_segs);
416+
return __bio_split_to_limits(bio, bdev_limits(bio->bi_bdev), &nr_segs);
418417
}
419418
EXPORT_SYMBOL(bio_split_to_limits);
420419

block/blk-settings.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ EXPORT_SYMBOL(blk_stack_limits);
661661
void queue_limits_stack_bdev(struct queue_limits *t, struct block_device *bdev,
662662
sector_t offset, const char *pfx)
663663
{
664-
if (blk_stack_limits(t, &bdev_get_queue(bdev)->limits,
664+
if (blk_stack_limits(t, bdev_limits(bdev),
665665
get_start_sect(bdev) + offset))
666666
pr_notice("%s: Warning: Device %pg is misaligned\n",
667667
pfx, bdev);

drivers/md/dm-cache-target.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3360,7 +3360,7 @@ static int cache_iterate_devices(struct dm_target *ti,
33603360
static void disable_passdown_if_not_supported(struct cache *cache)
33613361
{
33623362
struct block_device *origin_bdev = cache->origin_dev->bdev;
3363-
struct queue_limits *origin_limits = &bdev_get_queue(origin_bdev)->limits;
3363+
struct queue_limits *origin_limits = bdev_limits(origin_bdev);
33643364
const char *reason = NULL;
33653365

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

33873387
if (!cache->features.discard_passdown) {
33883388
/* No passdown is done so setting own virtual limits */

drivers/md/dm-clone-target.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,7 +2020,7 @@ static void clone_resume(struct dm_target *ti)
20202020
static void disable_passdown_if_not_supported(struct clone *clone)
20212021
{
20222022
struct block_device *dest_dev = clone->dest_dev->bdev;
2023-
struct queue_limits *dest_limits = &bdev_get_queue(dest_dev)->limits;
2023+
struct queue_limits *dest_limits = bdev_limits(dest_dev);
20242024
const char *reason = NULL;
20252025

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

20462046
if (!test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags)) {
20472047
/* No passdown is done so we set our own virtual limits */

drivers/md/dm-thin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2842,7 +2842,7 @@ static void disable_discard_passdown_if_not_supported(struct pool_c *pt)
28422842
{
28432843
struct pool *pool = pt->pool;
28442844
struct block_device *data_bdev = pt->data_dev->bdev;
2845-
struct queue_limits *data_limits = &bdev_get_queue(data_bdev)->limits;
2845+
struct queue_limits *data_limits = bdev_limits(data_bdev);
28462846
const char *reason = NULL;
28472847

28482848
if (!pt->adjusted_pf.discard_passdown)

fs/btrfs/zoned.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -707,11 +707,8 @@ int btrfs_check_zoned_mode(struct btrfs_fs_info *fs_info)
707707
* zoned mode. In this case, we don't have a valid max zone
708708
* append size.
709709
*/
710-
if (bdev_is_zoned(device->bdev)) {
711-
blk_stack_limits(lim,
712-
&bdev_get_queue(device->bdev)->limits,
713-
0);
714-
}
710+
if (bdev_is_zoned(device->bdev))
711+
blk_stack_limits(lim, bdev_limits(device->bdev), 0);
715712
}
716713

717714
/*

include/linux/blkdev.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,6 +1159,11 @@ enum blk_default_limits {
11591159
*/
11601160
#define BLK_DEF_MAX_SECTORS_CAP 2560u
11611161

1162+
static inline struct queue_limits *bdev_limits(struct block_device *bdev)
1163+
{
1164+
return &bdev_get_queue(bdev)->limits;
1165+
}
1166+
11621167
static inline unsigned long queue_segment_boundary(const struct request_queue *q)
11631168
{
11641169
return q->limits.seg_boundary_mask;
@@ -1293,23 +1298,23 @@ unsigned int bdev_discard_alignment(struct block_device *bdev);
12931298

12941299
static inline unsigned int bdev_max_discard_sectors(struct block_device *bdev)
12951300
{
1296-
return bdev_get_queue(bdev)->limits.max_discard_sectors;
1301+
return bdev_limits(bdev)->max_discard_sectors;
12971302
}
12981303

12991304
static inline unsigned int bdev_discard_granularity(struct block_device *bdev)
13001305
{
1301-
return bdev_get_queue(bdev)->limits.discard_granularity;
1306+
return bdev_limits(bdev)->discard_granularity;
13021307
}
13031308

13041309
static inline unsigned int
13051310
bdev_max_secure_erase_sectors(struct block_device *bdev)
13061311
{
1307-
return bdev_get_queue(bdev)->limits.max_secure_erase_sectors;
1312+
return bdev_limits(bdev)->max_secure_erase_sectors;
13081313
}
13091314

13101315
static inline unsigned int bdev_write_zeroes_sectors(struct block_device *bdev)
13111316
{
1312-
return bdev_get_queue(bdev)->limits.max_write_zeroes_sectors;
1317+
return bdev_limits(bdev)->max_write_zeroes_sectors;
13131318
}
13141319

13151320
static inline bool bdev_nonrot(struct block_device *bdev)
@@ -1345,7 +1350,7 @@ static inline bool bdev_write_cache(struct block_device *bdev)
13451350

13461351
static inline bool bdev_fua(struct block_device *bdev)
13471352
{
1348-
return bdev_get_queue(bdev)->limits.features & BLK_FEAT_FUA;
1353+
return bdev_limits(bdev)->features & BLK_FEAT_FUA;
13491354
}
13501355

13511356
static inline bool bdev_nowait(struct block_device *bdev)

0 commit comments

Comments
 (0)