diff options
author | Jens Axboe <axboe@fb.com> | 2015-07-14 10:15:12 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-07-17 10:41:53 -0400 |
commit | 2bb4cd5cc472b191a46938becb7dafdd44644329 (patch) | |
tree | 8fabaacb2c5aebf2cc7b18dc59898a234985dbbd /drivers/block | |
parent | 6c71013ecb7e2bddbed9f5b95e7aed22c491daa9 (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.c | 2 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_nl.c | 4 | ||||
-rw-r--r-- | drivers/block/loop.c | 4 | ||||
-rw-r--r-- | drivers/block/nbd.c | 2 | ||||
-rw-r--r-- | drivers/block/nvme-core.c | 2 | ||||
-rw-r--r-- | drivers/block/rbd.c | 2 | ||||
-rw-r--r-- | drivers/block/skd_main.c | 2 | ||||
-rw-r--r-- | drivers/block/zram/zram_drv.c | 2 |
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 |