On 11/9/22 2:28 AM, Chao Leng wrote: > > > On 2022/11/9 11:11, Mike Christie wrote: >> This converts the NVMe errors we could see during PR handling to PT_STS >> errors, so pr_ops callers can handle scsi and nvme errors without knowing >> the device types. >> >> Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx> >> --- >> drivers/nvme/host/core.c | 42 ++++++++++++++++++++++++++++++++++++++-- >> 1 file changed, 40 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c >> index dc4220600585..8f0177045a2f 100644 >> --- a/drivers/nvme/host/core.c >> +++ b/drivers/nvme/host/core.c >> @@ -2104,11 +2104,43 @@ static int nvme_send_ns_pr_command(struct nvme_ns *ns, struct nvme_command *c, >> return nvme_submit_sync_cmd(ns->queue, c, data, 16); >> } >> +static enum pr_status nvme_sc_to_pr_status(int nvme_sc) >> +{ >> + enum pr_status sts; >> + >> + switch (nvme_sc) { >> + case NVME_SC_SUCCESS: >> + sts = PR_STS_SUCCESS; >> + break; >> + case NVME_SC_RESERVATION_CONFLICT: >> + sts = PR_STS_RESERVATION_CONFLICT; >> + break; >> + case NVME_SC_HOST_PATH_ERROR: >> + sts = PR_STS_PATH_FAILED; > All path-related errors should be considered. Will do. Just one question. I didn't see NVME_SC_CTRL_PATH_ERROR and NVME_SC_INTERNAL_PATH_ERROR being used. Are they retryable errors?