bi_offload_capable() returns whether a block device's metadata size
matches its PI tuple size. Use pi_tuple_size instead of switching on
csum_type. This makes the code considerably simpler and less branchy.
Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
static bool bi_offload_capable(struct blk_integrity *bi)
{
- switch (bi->csum_type) {
- case BLK_INTEGRITY_CSUM_CRC64:
- return bi->metadata_size == sizeof(struct crc64_pi_tuple);
- case BLK_INTEGRITY_CSUM_CRC:
- case BLK_INTEGRITY_CSUM_IP:
- return bi->metadata_size == sizeof(struct t10_pi_tuple);
- default:
- pr_warn_once("%s: unknown integrity checksum type:%d\n",
- __func__, bi->csum_type);
- fallthrough;
- case BLK_INTEGRITY_CSUM_NONE:
- return false;
- }
+ return bi->metadata_size == bi->pi_tuple_size;
}
/**