diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -120,7 +120,8 @@ struct nvme_qpair *qpair; struct memdesc payload; bool payload_valid : 1, - timeout : 1; + timeout : 1, + rpt_err : 1; nvme_cb_fn_t cb_fn; void *cb_arg; int32_t retries; @@ -502,6 +503,7 @@ req->cb_fn = cb_fn; req->cb_arg = cb_arg; req->timeout = true; + req->rpt_err = true; } return (req); } diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c --- a/sys/dev/nvme/nvme_qpair.c +++ b/sys/dev/nvme/nvme_qpair.c @@ -433,7 +433,7 @@ if (error && req->retries >= nvme_retry_count && retriable) qpair->num_failures++; - if (error && (print_on_error == ERROR_PRINT_ALL || + if (error && req->rpt_err && (print_on_error == ERROR_PRINT_ALL || (!retry && print_on_error == ERROR_PRINT_NO_RETRY))) { nvme_qpair_print_command(qpair, &req->cmd); nvme_qpair_print_completion(qpair, cpl); @@ -522,7 +522,7 @@ error = nvme_completion_is_error(&cpl); - if (error) { + if (error && req->rpt_err) { nvme_qpair_print_command(qpair, &req->cmd); nvme_qpair_print_completion(qpair, &cpl); } @@ -1308,7 +1308,8 @@ while (!STAILQ_EMPTY(&temp)) { req = STAILQ_FIRST(&temp); STAILQ_REMOVE_HEAD(&temp, stailq); - nvme_qpair_print_command(qpair, &req->cmd); + if (req->rpt_err) + nvme_qpair_print_command(qpair, &req->cmd); _nvme_qpair_submit_request(qpair, req); } if (rpt)