[PATCH 04/12] block: remove the blk_integrity_profile structure
Bart Van Assche
bvanassche at acm.org
Thu Jun 6 08:38:38 PDT 2024
On 6/5/24 22:50, Christoph Hellwig wrote:
> On Wed, Jun 05, 2024 at 10:31:27AM -0600, Bart Van Assche wrote:
>>> + case BLK_INTEGRITY_CSUM_CRC64:
>>> + if (bi->flags & BLK_INTEGRITY_REF_TAG)
>>> + return "EXT-DIF-TYPE1-CRC64";
>>> + return "EXT-DIF-TYPE3-CRC64";
>>> + default:
>>> + return "nop";
>>> + }
>>> +}
>>
>> Since bi->csum_type has an enumeration type, please leave out the "default:"
>> and move return "nop" outside the switch statement. This will make the
>> compiler issue a warning if a new enumeration label would be added without
>> updating the above switch statement. Otherwise this patch looks good to me.
>
> For that to work you'd need to make csum_type the enum type and not an
> unsigned char, which would bloat the block limits. You'd also need to
> keep the return "nop" where it is, but use the explicit case instead of
> the default.
Has it been considered to add __packed to the definition of enum
blk_integerity_checksum such that its size changes from 4 to 1 bytes and to
change "unsigned char csum_type" into "enum blk_integerity csum_type"?
Thanks,
Bart.
More information about the Linux-nvme
mailing list