From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0E81C433E6 for ; Thu, 21 Jan 2021 07:04:18 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3CB662396F for ; Thu, 21 Jan 2021 07:04:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3CB662396F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mKTkyk+4G2naJImAJ6JG2WjH8Jc+vR03VreP4mxFToM=; b=JtjxB3vE3+HCPQsYMOJn81WSO WHEVoQtJ2CGr8ryAi95VacKsAAxenlY2uB02C0AUmn6cBrVSUOfjdpm0gFL8n0y10zXlY7uC5qBqN 8zeaPIGwfSDAXNXmBvjBvZbBww64irBe8fGmMq8pVeIprRIoMgGf4mi4bdvUdGEipeFdRtVmURmvn bUZlbCRzdamEaI85gJzmUobV7a98otRDkC3ZURKUBi9Q5sw5QobvMS91P7Phl6rG/RE37Hfcx2YEU VTN6XUD/eBxj2oH0TqL1xJ7PcfgKEHQ4oVEn/G82MpE2KlbeE88u8KYzpKqE5EQz7CSbGAmAuKl/l UPO+mpNHQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2U0R-0006kH-Ki; Thu, 21 Jan 2021 07:03:47 +0000 Received: from szxga04-in.huawei.com ([45.249.212.190]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2U0K-0006ha-KI for linux-nvme@lists.infradead.org; Thu, 21 Jan 2021 07:03:41 +0000 Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4DLtcj4dQwz15wQj; Thu, 21 Jan 2021 15:02:29 +0800 (CST) Received: from huawei.com (10.29.88.127) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.498.0; Thu, 21 Jan 2021 15:03:32 +0800 From: Chao Leng To: Subject: [PATCH v3 2/5] nvme-core: introduce complete failed request Date: Thu, 21 Jan 2021 15:03:27 +0800 Message-ID: <20210121070330.19701-3-lengchao@huawei.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20210121070330.19701-1-lengchao@huawei.com> References: <20210121070330.19701-1-lengchao@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.29.88.127] X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210121_020340_941937_24CEADBB X-CRM114-Status: UNSURE ( 8.65 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: axboe@kernel.dk, linux-block@vger.kernel.org, sagi@grimberg.me, axboe@fb.com, kbusch@kernel.org, hch@lst.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org Work with nvme native multipath, if a path related error occurs when queue_rq call HBA drive to send request, queue_rq need complete the request with NVME_SC_HOST_PATH_ERROR, the request will fail over to retry if needed. So introduce nvme_complete_failed_req for queue_rq and nvmf_fail_nonready_command. Signed-off-by: Chao Leng --- drivers/nvme/host/nvme.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index 88a6b97247f5..01fb54ba3d1f 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -575,6 +575,14 @@ static inline bool nvme_is_aen_req(u16 qid, __u16 command_id) } void nvme_complete_rq(struct request *req); + +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); +} + bool nvme_cancel_request(struct request *req, void *data, bool reserved); bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl, enum nvme_ctrl_state new_state); -- 2.16.4 _______________________________________________ Linux-nvme mailing list Linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme