mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
block: Reduce the size of struct blk_integrity
The per-device properties in the blk_integrity structure were previously unsigned short. However, most of the values fit inside a char. The only exception is the data interval size and we can work around that by storing it as a power of two. This cuts the size of the dynamic portion of blk_integrity in half. Signed-off-by: Martin K. Petersen <[email protected]> Reported-by: Christoph Hellwig <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Signed-off-by: Dan Williams <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
0f8087ecde
commit
a48f041d91
3 changed files with 9 additions and 9 deletions
|
|
@ -155,10 +155,10 @@ int blk_integrity_compare(struct gendisk *gd1, struct gendisk *gd2)
|
|||
if (!b1 || !b2)
|
||||
return -1;
|
||||
|
||||
if (b1->interval != b2->interval) {
|
||||
if (b1->interval_exp != b2->interval_exp) {
|
||||
pr_err("%s: %s/%s protection interval %u != %u\n",
|
||||
__func__, gd1->disk_name, gd2->disk_name,
|
||||
b1->interval, b2->interval);
|
||||
1 << b1->interval_exp, 1 << b2->interval_exp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
@ -440,7 +440,7 @@ int blk_integrity_register(struct gendisk *disk, struct blk_integrity *template)
|
|||
kobject_uevent(&disk->integrity_kobj, KOBJ_ADD);
|
||||
|
||||
bi->flags |= BLK_INTEGRITY_VERIFY | BLK_INTEGRITY_GENERATE;
|
||||
bi->interval = queue_logical_block_size(disk->queue);
|
||||
bi->interval_exp = ilog2(queue_logical_block_size(disk->queue));
|
||||
disk->integrity = bi;
|
||||
} else
|
||||
bi = disk->integrity;
|
||||
|
|
|
|||
Loading…
Reference in a new issue