|
Daniel Wagner |
eaa498 |
From: Chaitanya Kulkarni <kch@nvidia.com>
|
|
Daniel Wagner |
eaa498 |
Date: Sun, 10 Apr 2022 20:12:49 -0700
|
|
Daniel Wagner |
eaa498 |
Subject: nvme: don't print verbose errors for internal passthrough requests
|
|
Daniel Wagner |
eaa498 |
Patch-mainline: v5.18-rc3
|
|
Daniel Wagner |
eaa498 |
Git-commit: b42b6f4485e3f0970e11f73df6202eeaf9f53a3e
|
|
Daniel Wagner |
eaa498 |
References: bsc#1202187
|
|
Daniel Wagner |
eaa498 |
|
|
Daniel Wagner |
eaa498 |
Use the RQF_QUIET flag to skip the newly added verbose error reporting,
|
|
Daniel Wagner |
eaa498 |
and set the flag in __nvme_submit_sync_cmd, which is used for most
|
|
Daniel Wagner |
eaa498 |
internal passthrough requests where we do expect errors (e.g. due to
|
|
Daniel Wagner |
eaa498 |
probing for optional functionality). This is similar to what the SCSI
|
|
Daniel Wagner |
eaa498 |
verbose error logging does.
|
|
Daniel Wagner |
eaa498 |
|
|
Daniel Wagner |
eaa498 |
Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
|
|
Daniel Wagner |
eaa498 |
Reviewed-by: Alan Adamson <alan.adamson@oracle.com>
|
|
Daniel Wagner |
eaa498 |
Reviewed-by: Keith Busch <kbusch@kernel.org>
|
|
Daniel Wagner |
eaa498 |
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
|
|
Daniel Wagner |
eaa498 |
Tested-by: Alan Adamson <alan.adamson@oracle.com>
|
|
Daniel Wagner |
eaa498 |
Tested-by: Yi Zhang <yi.zhang@redhat.com>
|
|
Daniel Wagner |
eaa498 |
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
|
Daniel Wagner |
eaa498 |
Acked-by: Daniel Wagner <dwagner@suse.de>
|
|
Daniel Wagner |
eaa498 |
---
|
|
Daniel Wagner |
eaa498 |
drivers/nvme/host/core.c | 3 ++-
|
|
Daniel Wagner |
eaa498 |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Daniel Wagner |
eaa498 |
|
|
Daniel Wagner |
eaa498 |
--- a/drivers/nvme/host/core.c
|
|
Daniel Wagner |
eaa498 |
+++ b/drivers/nvme/host/core.c
|
|
Daniel Wagner |
eaa498 |
@@ -361,7 +361,7 @@ static inline void nvme_end_req(struct r
|
|
Daniel Wagner |
eaa498 |
{
|
|
Daniel Wagner |
eaa498 |
blk_status_t status = nvme_error_status(nvme_req(req)->status);
|
|
Daniel Wagner |
eaa498 |
|
|
Daniel Wagner |
eaa498 |
- if (unlikely(nvme_req(req)->status != NVME_SC_SUCCESS))
|
|
Daniel Wagner |
eaa498 |
+ if (unlikely(nvme_req(req)->status && !(req->rq_flags & RQF_QUIET)))
|
|
Daniel Wagner |
eaa498 |
nvme_log_error(req);
|
|
Daniel Wagner |
eaa498 |
|
|
Daniel Wagner |
eaa498 |
if (IS_ENABLED(CONFIG_BLK_DEV_ZONED) &&
|
|
Daniel Wagner |
eaa498 |
@@ -1099,6 +1099,7 @@ int __nvme_submit_sync_cmd(struct reques
|
|
Daniel Wagner |
eaa498 |
goto out;
|
|
Daniel Wagner |
eaa498 |
}
|
|
Daniel Wagner |
eaa498 |
|
|
Daniel Wagner |
eaa498 |
+ req->rq_flags |= RQF_QUIET;
|
|
Daniel Wagner |
eaa498 |
ret = nvme_execute_rq(NULL, req, at_head);
|
|
Daniel Wagner |
eaa498 |
if (result && ret >= 0)
|
|
Daniel Wagner |
eaa498 |
*result = nvme_req(req)->result;
|