Skip to content

Commit 2bb4cd5

Browse files
committed
block: have drivers use blk_queue_max_discard_sectors()
Some drivers use it now, others just set the limits field manually. But in preparation for splitting this into a hard and soft limit, ensure that they all call the proper function for setting the hw limit for discards. Reviewed-by: Jeff Moyer <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent 6c71013 commit 2bb4cd5

File tree

12 files changed

+15
-15
lines changed

12 files changed

+15
-15
lines changed

drivers/block/brd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ static struct brd_device *brd_alloc(int i)
500500
blk_queue_physical_block_size(brd->brd_queue, PAGE_SIZE);
501501

502502
brd->brd_queue->limits.discard_granularity = PAGE_SIZE;
503-
brd->brd_queue->limits.max_discard_sectors = UINT_MAX;
503+
blk_queue_max_discard_sectors(brd->brd_queue, UINT_MAX);
504504
brd->brd_queue->limits.discard_zeroes_data = 1;
505505
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, brd->brd_queue);
506506

drivers/block/drbd/drbd_nl.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,14 +1156,14 @@ static void drbd_setup_queue_param(struct drbd_device *device, struct drbd_backi
11561156
/* For now, don't allow more than one activity log extent worth of data
11571157
* to be discarded in one go. We may need to rework drbd_al_begin_io()
11581158
* to allow for even larger discard ranges */
1159-
q->limits.max_discard_sectors = DRBD_MAX_DISCARD_SECTORS;
1159+
blk_queue_max_discard_sectors(q, DRBD_MAX_DISCARD_SECTORS);
11601160

11611161
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
11621162
/* REALLY? Is stacking secdiscard "legal"? */
11631163
if (blk_queue_secdiscard(b))
11641164
queue_flag_set_unlocked(QUEUE_FLAG_SECDISCARD, q);
11651165
} else {
1166-
q->limits.max_discard_sectors = 0;
1166+
blk_queue_max_discard_sectors(q, 0);
11671167
queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q);
11681168
queue_flag_clear_unlocked(QUEUE_FLAG_SECDISCARD, q);
11691169
}

drivers/block/loop.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -675,15 +675,15 @@ static void loop_config_discard(struct loop_device *lo)
675675
lo->lo_encrypt_key_size) {
676676
q->limits.discard_granularity = 0;
677677
q->limits.discard_alignment = 0;
678-
q->limits.max_discard_sectors = 0;
678+
blk_queue_max_discard_sectors(q, 0);
679679
q->limits.discard_zeroes_data = 0;
680680
queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q);
681681
return;
682682
}
683683

684684
q->limits.discard_granularity = inode->i_sb->s_blocksize;
685685
q->limits.discard_alignment = 0;
686-
q->limits.max_discard_sectors = UINT_MAX >> 9;
686+
blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
687687
q->limits.discard_zeroes_data = 1;
688688
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
689689
}

drivers/block/nbd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,7 @@ static int __init nbd_init(void)
822822
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, disk->queue);
823823
queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, disk->queue);
824824
disk->queue->limits.discard_granularity = 512;
825-
disk->queue->limits.max_discard_sectors = UINT_MAX;
825+
blk_queue_max_discard_sectors(disk->queue, UINT_MAX);
826826
disk->queue->limits.discard_zeroes_data = 0;
827827
blk_queue_max_hw_sectors(disk->queue, 65536);
828828
disk->queue->limits.max_sectors = 256;

drivers/block/nvme-core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1935,7 +1935,7 @@ static void nvme_config_discard(struct nvme_ns *ns)
19351935
ns->queue->limits.discard_zeroes_data = 0;
19361936
ns->queue->limits.discard_alignment = logical_block_size;
19371937
ns->queue->limits.discard_granularity = logical_block_size;
1938-
ns->queue->limits.max_discard_sectors = 0xffffffff;
1938+
blk_queue_max_discard_sectors(ns->queue, 0xffffffff);
19391939
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, ns->queue);
19401940
}
19411941

drivers/block/rbd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3803,7 +3803,7 @@ static int rbd_init_disk(struct rbd_device *rbd_dev)
38033803
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
38043804
q->limits.discard_granularity = segment_size;
38053805
q->limits.discard_alignment = segment_size;
3806-
q->limits.max_discard_sectors = segment_size / SECTOR_SIZE;
3806+
blk_queue_max_discard_sectors(q, segment_size / SECTOR_SIZE);
38073807
q->limits.discard_zeroes_data = 1;
38083808

38093809
blk_queue_merge_bvec(q, rbd_merge_bvec);

drivers/block/skd_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4422,7 +4422,7 @@ static int skd_cons_disk(struct skd_device *skdev)
44224422
/* DISCARD Flag initialization. */
44234423
q->limits.discard_granularity = 8192;
44244424
q->limits.discard_alignment = 0;
4425-
q->limits.max_discard_sectors = UINT_MAX >> 9;
4425+
blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
44264426
q->limits.discard_zeroes_data = 1;
44274427
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
44284428
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q);

drivers/block/zram/zram_drv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1244,7 +1244,7 @@ static int zram_add(void)
12441244
blk_queue_io_min(zram->disk->queue, PAGE_SIZE);
12451245
blk_queue_io_opt(zram->disk->queue, PAGE_SIZE);
12461246
zram->disk->queue->limits.discard_granularity = PAGE_SIZE;
1247-
zram->disk->queue->limits.max_discard_sectors = UINT_MAX;
1247+
blk_queue_max_discard_sectors(zram->disk->queue, UINT_MAX);
12481248
/*
12491249
* zram_bio_discard() will clear all logical blocks if logical block
12501250
* size is identical with physical block size(PAGE_SIZE). But if it is

drivers/md/bcache/super.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,7 @@ static int bcache_device_init(struct bcache_device *d, unsigned block_size,
830830
q->limits.max_sectors = UINT_MAX;
831831
q->limits.max_segment_size = UINT_MAX;
832832
q->limits.max_segments = BIO_MAX_PAGES;
833-
q->limits.max_discard_sectors = UINT_MAX;
833+
blk_queue_max_discard_sectors(q, UINT_MAX);
834834
q->limits.discard_granularity = 512;
835835
q->limits.io_min = block_size;
836836
q->limits.logical_block_size = block_size;

drivers/mmc/card/queue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ static void mmc_queue_setup_discard(struct request_queue *q,
165165
return;
166166

167167
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
168-
q->limits.max_discard_sectors = max_discard;
168+
blk_queue_max_discard_sectors(q, max_discard);
169169
if (card->erased_byte == 0 && !mmc_can_discard(card))
170170
q->limits.discard_zeroes_data = 1;
171171
q->limits.discard_granularity = card->pref_erase << 9;

drivers/mtd/mtd_blkdevs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
423423

424424
if (tr->discard) {
425425
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, new->rq);
426-
new->rq->limits.max_discard_sectors = UINT_MAX;
426+
blk_queue_max_discard_sectors(new->rq, UINT_MAX);
427427
}
428428

429429
gd->queue = new->rq;

drivers/scsi/sd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
647647
switch (mode) {
648648

649649
case SD_LBP_DISABLE:
650-
q->limits.max_discard_sectors = 0;
650+
blk_queue_max_discard_sectors(q, 0);
651651
queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q);
652652
return;
653653

@@ -675,7 +675,7 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
675675
break;
676676
}
677677

678-
q->limits.max_discard_sectors = max_blocks * (logical_block_size >> 9);
678+
blk_queue_max_discard_sectors(q, max_blocks * (logical_block_size >> 9));
679679
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
680680
}
681681

0 commit comments

Comments
 (0)