Re: [PATCH v3 03/19] scsi: Move sd_pr_type to header to share

Mike Christie
2022-11-01T16:43:23Z

On 11/1/22 12:43 AM, Chaitanya Kulkarni wrote:
>> +static inline enum scsi_pr_type block_pr_type_to_scsi(enum pr_type type)
>> +{
>> + switch (type) {
>> + case PR_WRITE_EXCLUSIVE:
>> + return SCSI_PR_WRITE_EXCLUSIVE;
>> + case PR_EXCLUSIVE_ACCESS:
>> + return SCSI_PR_EXCLUSIVE_ACCESS;
>> + case PR_WRITE_EXCLUSIVE_REG_ONLY:
>> + return SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY;
>> + case PR_EXCLUSIVE_ACCESS_REG_ONLY:
>> + return SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY;
>> + case PR_WRITE_EXCLUSIVE_ALL_REGS:
>> + return SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS;
>> + case PR_EXCLUSIVE_ACCESS_ALL_REGS:
>> + return SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS;
>> + default:
>> + return 0;
>> + }
>> +};
>
>
> do we need above semicolon ?

No. It was a mistake.

>
> how about not using switch case pattern totally untested below ?
>
> static inline enum scsi_pr_type block_pr_type_to_scsi(enum pr_type type)
> {
> enum pr_type pr_to_scsi_pr[] = {
> [PR_WRITE_EXCLUSIVE] = SCSI_PR_WRITE_EXCLUSIVE,
> [PR_EXCLUSIVE_ACCESS] = SCSI_PR_EXCLUSIVE_ACCESS,
> [PR_WRITE_EXCLUSIVE_REG_ONLY] =
> SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY,
> [PR_EXCLUSIVE_ACCESS_REG_ONLY] =
> SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY,
> [PR_WRITE_EXCLUSIVE_ALL_REGS] =
> SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS,
> [PR_EXCLUSIVE_ACCESS_ALL_REGS] =
> SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS,
> };
>
> if (type > ARRAY_SIZE(pr_to_scsi_pr))
> return 0;
> return pr_to_scsi_pr[type];
> }
>

Keith also wanted something like this for nvme so will fix up
the scsi and nvme code.