Hello, On 21-01-05 15:19:32, Chao Leng wrote: > When a request is queued failed, if the fail status is not > BLK_STS_RESOURCE, BLK_STS_DEV_RESOURCE, BLK_STS_ZONE_RESOURCE, > the request is need to complete with nvme_complete_rq in queue_rq. > So introduce nvme_try_complete_failed_req. > The request is needed to complete with NVME_SC_HOST_PATH_ERROR in > nvmf_fail_nonready_command and queue_rq. > So introduce nvme_complete_failed_req. > For details, see the subsequent patches. > > Signed-off-by: Chao Leng <lengchao@xxxxxxxxxx> > --- > drivers/nvme/host/nvme.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h > index bfcedfa4b057..1a0bddb9158f 100644 > --- a/drivers/nvme/host/nvme.h > +++ b/drivers/nvme/host/nvme.h > @@ -649,6 +649,24 @@ void nvme_put_ns_from_disk(struct nvme_ns_head *head, int idx); > extern const struct attribute_group *nvme_ns_id_attr_groups[]; > extern const struct block_device_operations nvme_ns_head_ops; > > +static inline void nvme_complete_failed_req(struct request *req) > +{ > + nvme_req(req)->status = NVME_SC_HOST_PATH_ERROR; > + blk_mq_set_request_complete(req); > + nvme_complete_rq(req); > +} > + > +static inline blk_status_t nvme_try_complete_failed_req(struct request *req, > + blk_status_t ret) > +{ > + if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE || > + ret == BLK_STS_ZONE_RESOURCE) > + return ret; If it has nothing to do with various conditions, can we have this if to switch just like the other function in the same file does: switch (ret) { case BLK_STS_RESOURCE: case BLK_STS_DEV_RESOURCE: case BLK_STS_ZONE_RESOURCE: return ret; default: nvme_complete_failed_req(req); return BLK_STS_OK; } > + > + nvme_complete_failed_req(req); > + return BLK_STS_OK; > +} > + Can we have these two functions along side with nvme_try_complete_req() by moving declaration of nvme_coplete_rq() a little bit up ? > #ifdef CONFIG_NVME_MULTIPATH > static inline bool nvme_ctrl_use_ana(struct nvme_ctrl *ctrl) > { > -- > 2.16.4 > Thanks,