Skip to content

Commit 2547906

Browse files
lostandy26Christoph Hellwig
authored and
Christoph Hellwig
committed
nvme-core: add cancel tagset helpers
Add nvme_cancel_tagset and nvme_cancel_admin_tagset for tear down and reconnection error handling. Signed-off-by: Chao Leng <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
1 parent 8f8ea92 commit 2547906

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

drivers/nvme/host/core.c

+20
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,26 @@ bool nvme_cancel_request(struct request *req, void *data, bool reserved)
370370
}
371371
EXPORT_SYMBOL_GPL(nvme_cancel_request);
372372

373+
void nvme_cancel_tagset(struct nvme_ctrl *ctrl)
374+
{
375+
if (ctrl->tagset) {
376+
blk_mq_tagset_busy_iter(ctrl->tagset,
377+
nvme_cancel_request, ctrl);
378+
blk_mq_tagset_wait_completed_request(ctrl->tagset);
379+
}
380+
}
381+
EXPORT_SYMBOL_GPL(nvme_cancel_tagset);
382+
383+
void nvme_cancel_admin_tagset(struct nvme_ctrl *ctrl)
384+
{
385+
if (ctrl->admin_tagset) {
386+
blk_mq_tagset_busy_iter(ctrl->admin_tagset,
387+
nvme_cancel_request, ctrl);
388+
blk_mq_tagset_wait_completed_request(ctrl->admin_tagset);
389+
}
390+
}
391+
EXPORT_SYMBOL_GPL(nvme_cancel_admin_tagset);
392+
373393
bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
374394
enum nvme_ctrl_state new_state)
375395
{

drivers/nvme/host/nvme.h

+2
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,8 @@ static inline bool nvme_is_aen_req(u16 qid, __u16 command_id)
576576

577577
void nvme_complete_rq(struct request *req);
578578
bool nvme_cancel_request(struct request *req, void *data, bool reserved);
579+
void nvme_cancel_tagset(struct nvme_ctrl *ctrl);
580+
void nvme_cancel_admin_tagset(struct nvme_ctrl *ctrl);
579581
bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
580582
enum nvme_ctrl_state new_state);
581583
bool nvme_wait_reset(struct nvme_ctrl *ctrl);

0 commit comments

Comments
 (0)