aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2015-07-14 10:15:12 -0400
committerJens Axboe <axboe@fb.com>2015-07-17 10:41:53 -0400
commit2bb4cd5cc472b191a46938becb7dafdd44644329 (patch)
tree8fabaacb2c5aebf2cc7b18dc59898a234985dbbd /drivers/block
parent6c71013ecb7e2bddbed9f5b95e7aed22c491daa9 (diff)
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 <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/brd.c2
-rw-r--r--drivers/block/drbd/drbd_nl.c4
-rw-r--r--drivers/block/loop.c4
-rw-r--r--drivers/block/nbd.c2
-rw-r--r--drivers/block/nvme-core.c2
-rw-r--r--drivers/block/rbd.c2
-rw-r--r--drivers/block/skd_main.c2
-rw-r--r--drivers/block/zram/zram_drv.c2
8 files changed, 10 insertions, 10 deletions
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index 64ab4951e9d6..e573e470bd8a 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -500,7 +500,7 @@ static struct brd_device *brd_alloc(int i)
500 blk_queue_physical_block_size(brd->brd_queue, PAGE_SIZE); 500 blk_queue_physical_block_size(brd->brd_queue, PAGE_SIZE);
501 501
502 brd->brd_queue->limits.discard_granularity = PAGE_SIZE; 502 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);
504 brd->brd_queue->limits.discard_zeroes_data = 1; 504 brd->brd_queue->limits.discard_zeroes_data = 1;
505 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, brd->brd_queue); 505 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, brd->brd_queue);
506 506
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 74df8cfad414..e80cbefbc2b5 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -1156,14 +1156,14 @@ static void drbd_setup_queue_param(struct drbd_device *device, struct drbd_backi
1156 /* For now, don't allow more than one activity log extent worth of data 1156 /* For now, don't allow more than one activity log extent worth of data
1157 * to be discarded in one go. We may need to rework drbd_al_begin_io() 1157 * to be discarded in one go. We may need to rework drbd_al_begin_io()
1158 * to allow for even larger discard ranges */ 1158 * 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);
1160 1160
1161 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); 1161 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
1162 /* REALLY? Is stacking secdiscard "legal"? */ 1162 /* REALLY? Is stacking secdiscard "legal"? */
1163 if (blk_queue_secdiscard(b)) 1163 if (blk_queue_secdiscard(b))
1164 queue_flag_set_unlocked(QUEUE_FLAG_SECDISCARD, q); 1164 queue_flag_set_unlocked(QUEUE_FLAG_SECDISCARD, q);
1165 } else { 1165 } else {
1166 q->limits.max_discard_sectors = 0; 1166 blk_queue_max_discard_sectors(q, 0);
1167 queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q); 1167 queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q);
1168 queue_flag_clear_unlocked(QUEUE_FLAG_SECDISCARD, q); 1168 queue_flag_clear_unlocked(QUEUE_FLAG_SECDISCARD, q);
1169 } 1169 }
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index f7a4c9d7f721..f9889b6bc02c 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -675,7 +675,7 @@ static void loop_config_discard(struct loop_device *lo)
675 lo->lo_encrypt_key_size) { 675 lo->lo_encrypt_key_size) {
676 q->limits.discard_granularity = 0; 676 q->limits.discard_granularity = 0;
677 q->limits.discard_alignment = 0; 677 q->limits.discard_alignment = 0;
678 q->limits.max_discard_sectors = 0; 678 blk_queue_max_discard_sectors(q, 0);
679 q->limits.discard_zeroes_data = 0; 679 q->limits.discard_zeroes_data = 0;
680 queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q); 680 queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, q);
681 return; 681 return;
@@ -683,7 +683,7 @@ static void loop_config_discard(struct loop_device *lo)
683 683
684 q->limits.discard_granularity = inode->i_sb->s_blocksize; 684 q->limits.discard_granularity = inode->i_sb->s_blocksize;
685 q->limits.discard_alignment = 0; 685 q->limits.discard_alignment = 0;
686 q->limits.max_discard_sectors = UINT_MAX >> 9; 686 blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
687 q->limits.discard_zeroes_data = 1; 687 q->limits.discard_zeroes_data = 1;
688 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); 688 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
689} 689}
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 0e385d8e9b86..f169faf9838a 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -822,7 +822,7 @@ static int __init nbd_init(void)
822 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, disk->queue); 822 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, disk->queue);
823 queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, disk->queue); 823 queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, disk->queue);
824 disk->queue->limits.discard_granularity = 512; 824 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);
826 disk->queue->limits.discard_zeroes_data = 0; 826 disk->queue->limits.discard_zeroes_data = 0;
827 blk_queue_max_hw_sectors(disk->queue, 65536); 827 blk_queue_max_hw_sectors(disk->queue, 65536);
828 disk->queue->limits.max_sectors = 256; 828 disk->queue->limits.max_sectors = 256;
diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c
index 7920c2741b47..d844ec4a2b85 100644
--- a/drivers/block/nvme-core.c
+++ b/drivers/block/nvme-core.c
@@ -1935,7 +1935,7 @@ static void nvme_config_discard(struct nvme_ns *ns)
1935 ns->queue->limits.discard_zeroes_data = 0; 1935 ns->queue->limits.discard_zeroes_data = 0;
1936 ns->queue->limits.discard_alignment = logical_block_size; 1936 ns->queue->limits.discard_alignment = logical_block_size;
1937 ns->queue->limits.discard_granularity = logical_block_size; 1937 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);
1939 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, ns->queue); 1939 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, ns->queue);
1940} 1940}
1941 1941
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index d94529d5c8e9..dcc86937f55c 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -3803,7 +3803,7 @@ static int rbd_init_disk(struct rbd_device *rbd_dev)
3803 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); 3803 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
3804 q->limits.discard_granularity = segment_size; 3804 q->limits.discard_granularity = segment_size;
3805 q->limits.discard_alignment = segment_size; 3805 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);
3807 q->limits.discard_zeroes_data = 1; 3807 q->limits.discard_zeroes_data = 1;
3808 3808
3809 blk_queue_merge_bvec(q, rbd_merge_bvec); 3809 blk_queue_merge_bvec(q, rbd_merge_bvec);
diff --git a/drivers/block/skd_main.c b/drivers/block/skd_main.c
index 1e46eb2305c0..586f9168ffa4 100644
--- a/drivers/block/skd_main.c
+++ b/drivers/block/skd_main.c
@@ -4422,7 +4422,7 @@ static int skd_cons_disk(struct skd_device *skdev)
4422 /* DISCARD Flag initialization. */ 4422 /* DISCARD Flag initialization. */
4423 q->limits.discard_granularity = 8192; 4423 q->limits.discard_granularity = 8192;
4424 q->limits.discard_alignment = 0; 4424 q->limits.discard_alignment = 0;
4425 q->limits.max_discard_sectors = UINT_MAX >> 9; 4425 blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
4426 q->limits.discard_zeroes_data = 1; 4426 q->limits.discard_zeroes_data = 1;
4427 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); 4427 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
4428 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q); 4428 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q);
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index fb655e8d1e3b..f439ad2800da 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -1244,7 +1244,7 @@ static int zram_add(void)
1244 blk_queue_io_min(zram->disk->queue, PAGE_SIZE); 1244 blk_queue_io_min(zram->disk->queue, PAGE_SIZE);
1245 blk_queue_io_opt(zram->disk->queue, PAGE_SIZE); 1245 blk_queue_io_opt(zram->disk->queue, PAGE_SIZE);
1246 zram->disk->queue->limits.discard_granularity = PAGE_SIZE; 1246 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);
1248 /* 1248 /*
1249 * zram_bio_discard() will clear all logical blocks if logical block 1249 * zram_bio_discard() will clear all logical blocks if logical block
1250 * size is identical with physical block size(PAGE_SIZE). But if it is 1250 * size is identical with physical block size(PAGE_SIZE). But if it is