diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2009-05-22 17:17:49 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-05-22 17:22:54 -0400 |
commit | e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1 (patch) | |
tree | d60d15a082171c58ac811d547d51a9c3119f23e3 /block | |
parent | 9bd7de51ee8537094656149eaf45338cadb7d7d4 (diff) |
block: Do away with the notion of hardsect_size
Until now we have had a 1:1 mapping between storage device physical
block size and the logical block sized used when addressing the device.
With SATA 4KB drives coming out that will no longer be the case. The
sector size will be 4KB but the logical block size will remain
512-bytes. Hence we need to distinguish between the physical block size
and the logical ditto.
This patch renames hardsect_size to logical_block_size.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-integrity.c | 2 | ||||
-rw-r--r-- | block/blk-settings.c | 21 | ||||
-rw-r--r-- | block/blk-sysfs.c | 12 | ||||
-rw-r--r-- | block/compat_ioctl.c | 2 | ||||
-rw-r--r-- | block/ioctl.c | 2 |
5 files changed, 22 insertions, 17 deletions
diff --git a/block/blk-integrity.c b/block/blk-integrity.c index 91fa8e06b6a..73e28d35568 100644 --- a/block/blk-integrity.c +++ b/block/blk-integrity.c | |||
@@ -340,7 +340,7 @@ int blk_integrity_register(struct gendisk *disk, struct blk_integrity *template) | |||
340 | kobject_uevent(&bi->kobj, KOBJ_ADD); | 340 | kobject_uevent(&bi->kobj, KOBJ_ADD); |
341 | 341 | ||
342 | bi->flags |= INTEGRITY_FLAG_READ | INTEGRITY_FLAG_WRITE; | 342 | bi->flags |= INTEGRITY_FLAG_READ | INTEGRITY_FLAG_WRITE; |
343 | bi->sector_size = disk->queue->hardsect_size; | 343 | bi->sector_size = queue_logical_block_size(disk->queue); |
344 | disk->integrity = bi; | 344 | disk->integrity = bi; |
345 | } else | 345 | } else |
346 | bi = disk->integrity; | 346 | bi = disk->integrity; |
diff --git a/block/blk-settings.c b/block/blk-settings.c index 57af728d94b..15c3164537b 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c | |||
@@ -134,7 +134,7 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn) | |||
134 | q->backing_dev_info.state = 0; | 134 | q->backing_dev_info.state = 0; |
135 | q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY; | 135 | q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY; |
136 | blk_queue_max_sectors(q, SAFE_MAX_SECTORS); | 136 | blk_queue_max_sectors(q, SAFE_MAX_SECTORS); |
137 | blk_queue_hardsect_size(q, 512); | 137 | blk_queue_logical_block_size(q, 512); |
138 | blk_queue_dma_alignment(q, 511); | 138 | blk_queue_dma_alignment(q, 511); |
139 | blk_queue_congestion_threshold(q); | 139 | blk_queue_congestion_threshold(q); |
140 | q->nr_batching = BLK_BATCH_REQ; | 140 | q->nr_batching = BLK_BATCH_REQ; |
@@ -288,21 +288,20 @@ void blk_queue_max_segment_size(struct request_queue *q, unsigned int max_size) | |||
288 | EXPORT_SYMBOL(blk_queue_max_segment_size); | 288 | EXPORT_SYMBOL(blk_queue_max_segment_size); |
289 | 289 | ||
290 | /** | 290 | /** |
291 | * blk_queue_hardsect_size - set hardware sector size for the queue | 291 | * blk_queue_logical_block_size - set logical block size for the queue |
292 | * @q: the request queue for the device | 292 | * @q: the request queue for the device |
293 | * @size: the hardware sector size, in bytes | 293 | * @size: the logical block size, in bytes |
294 | * | 294 | * |
295 | * Description: | 295 | * Description: |
296 | * This should typically be set to the lowest possible sector size | 296 | * This should be set to the lowest possible block size that the |
297 | * that the hardware can operate on (possible without reverting to | 297 | * storage device can address. The default of 512 covers most |
298 | * even internal read-modify-write operations). Usually the default | 298 | * hardware. |
299 | * of 512 covers most hardware. | ||
300 | **/ | 299 | **/ |
301 | void blk_queue_hardsect_size(struct request_queue *q, unsigned short size) | 300 | void blk_queue_logical_block_size(struct request_queue *q, unsigned short size) |
302 | { | 301 | { |
303 | q->hardsect_size = size; | 302 | q->logical_block_size = size; |
304 | } | 303 | } |
305 | EXPORT_SYMBOL(blk_queue_hardsect_size); | 304 | EXPORT_SYMBOL(blk_queue_logical_block_size); |
306 | 305 | ||
307 | /* | 306 | /* |
308 | * Returns the minimum that is _not_ zero, unless both are zero. | 307 | * Returns the minimum that is _not_ zero, unless both are zero. |
@@ -324,7 +323,7 @@ void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) | |||
324 | t->max_phys_segments = min_not_zero(t->max_phys_segments, b->max_phys_segments); | 323 | t->max_phys_segments = min_not_zero(t->max_phys_segments, b->max_phys_segments); |
325 | t->max_hw_segments = min_not_zero(t->max_hw_segments, b->max_hw_segments); | 324 | t->max_hw_segments = min_not_zero(t->max_hw_segments, b->max_hw_segments); |
326 | t->max_segment_size = min_not_zero(t->max_segment_size, b->max_segment_size); | 325 | t->max_segment_size = min_not_zero(t->max_segment_size, b->max_segment_size); |
327 | t->hardsect_size = max(t->hardsect_size, b->hardsect_size); | 326 | t->logical_block_size = max(t->logical_block_size, b->logical_block_size); |
328 | if (!t->queue_lock) | 327 | if (!t->queue_lock) |
329 | WARN_ON_ONCE(1); | 328 | WARN_ON_ONCE(1); |
330 | else if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) { | 329 | else if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) { |
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 3ff9bba3379..13d38b7e4d0 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c | |||
@@ -100,9 +100,9 @@ static ssize_t queue_max_sectors_show(struct request_queue *q, char *page) | |||
100 | return queue_var_show(max_sectors_kb, (page)); | 100 | return queue_var_show(max_sectors_kb, (page)); |
101 | } | 101 | } |
102 | 102 | ||
103 | static ssize_t queue_hw_sector_size_show(struct request_queue *q, char *page) | 103 | static ssize_t queue_logical_block_size_show(struct request_queue *q, char *page) |
104 | { | 104 | { |
105 | return queue_var_show(q->hardsect_size, page); | 105 | return queue_var_show(queue_logical_block_size(q), page); |
106 | } | 106 | } |
107 | 107 | ||
108 | static ssize_t | 108 | static ssize_t |
@@ -249,7 +249,12 @@ static struct queue_sysfs_entry queue_iosched_entry = { | |||
249 | 249 | ||
250 | static struct queue_sysfs_entry queue_hw_sector_size_entry = { | 250 | static struct queue_sysfs_entry queue_hw_sector_size_entry = { |
251 | .attr = {.name = "hw_sector_size", .mode = S_IRUGO }, | 251 | .attr = {.name = "hw_sector_size", .mode = S_IRUGO }, |
252 | .show = queue_hw_sector_size_show, | 252 | .show = queue_logical_block_size_show, |
253 | }; | ||
254 | |||
255 | static struct queue_sysfs_entry queue_logical_block_size_entry = { | ||
256 | .attr = {.name = "logical_block_size", .mode = S_IRUGO }, | ||
257 | .show = queue_logical_block_size_show, | ||
253 | }; | 258 | }; |
254 | 259 | ||
255 | static struct queue_sysfs_entry queue_nonrot_entry = { | 260 | static struct queue_sysfs_entry queue_nonrot_entry = { |
@@ -283,6 +288,7 @@ static struct attribute *default_attrs[] = { | |||
283 | &queue_max_sectors_entry.attr, | 288 | &queue_max_sectors_entry.attr, |
284 | &queue_iosched_entry.attr, | 289 | &queue_iosched_entry.attr, |
285 | &queue_hw_sector_size_entry.attr, | 290 | &queue_hw_sector_size_entry.attr, |
291 | &queue_logical_block_size_entry.attr, | ||
286 | &queue_nonrot_entry.attr, | 292 | &queue_nonrot_entry.attr, |
287 | &queue_nomerges_entry.attr, | 293 | &queue_nomerges_entry.attr, |
288 | &queue_rq_affinity_entry.attr, | 294 | &queue_rq_affinity_entry.attr, |
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c index f87615dea46..9eaa1940273 100644 --- a/block/compat_ioctl.c +++ b/block/compat_ioctl.c | |||
@@ -763,7 +763,7 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg) | |||
763 | case BLKBSZGET_32: /* get the logical block size (cf. BLKSSZGET) */ | 763 | case BLKBSZGET_32: /* get the logical block size (cf. BLKSSZGET) */ |
764 | return compat_put_int(arg, block_size(bdev)); | 764 | return compat_put_int(arg, block_size(bdev)); |
765 | case BLKSSZGET: /* get block device hardware sector size */ | 765 | case BLKSSZGET: /* get block device hardware sector size */ |
766 | return compat_put_int(arg, bdev_hardsect_size(bdev)); | 766 | return compat_put_int(arg, bdev_logical_block_size(bdev)); |
767 | case BLKSECTGET: | 767 | case BLKSECTGET: |
768 | return compat_put_ushort(arg, | 768 | return compat_put_ushort(arg, |
769 | bdev_get_queue(bdev)->max_sectors); | 769 | bdev_get_queue(bdev)->max_sectors); |
diff --git a/block/ioctl.c b/block/ioctl.c index ad474d4bbcc..7aa97f65da8 100644 --- a/block/ioctl.c +++ b/block/ioctl.c | |||
@@ -311,7 +311,7 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, | |||
311 | case BLKBSZGET: /* get the logical block size (cf. BLKSSZGET) */ | 311 | case BLKBSZGET: /* get the logical block size (cf. BLKSSZGET) */ |
312 | return put_int(arg, block_size(bdev)); | 312 | return put_int(arg, block_size(bdev)); |
313 | case BLKSSZGET: /* get block device hardware sector size */ | 313 | case BLKSSZGET: /* get block device hardware sector size */ |
314 | return put_int(arg, bdev_hardsect_size(bdev)); | 314 | return put_int(arg, bdev_logical_block_size(bdev)); |
315 | case BLKSECTGET: | 315 | case BLKSECTGET: |
316 | return put_ushort(arg, bdev_get_queue(bdev)->max_sectors); | 316 | return put_ushort(arg, bdev_get_queue(bdev)->max_sectors); |
317 | case BLKRASET: | 317 | case BLKRASET: |