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.