[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