nvme fixes for Linux 5.17

- nvme-tcp: fix bogus request completion when failing to send AER
    (Sagi Grimberg)
  - add the missing nvme_complete_req tracepoint for batched completion
    (Bean Huo)
 -----BEGIN PGP SIGNATURE-----
 
 iQI/BAABCgApFiEEgdbnc3r/njty3Iq9D55TZVIEUYMFAmIEwXwLHGhjaEBsc3Qu
 ZGUACgkQD55TZVIEUYO4/Q//dLx6yMbfHsCnKVLq+u192jpyuP2E4bk+bJE+prAt
 H770A3xyG6n1HPYBWvXCCJgiJkvmigBJzvKBcD2wMbFfqsUJRX7fnZxI0VNlV7F5
 U1vu3Mhykeeohd9N9Xcqrp44ZZ1vtSN5EpuzbkORpm6Bj62ixKihg2OTqJEVImg3
 /FBy6G+dEvUmVVRq9cwSImEtFd3xsmJoqWsCrRImX3wU5yI9iaVhruGc8+Xn99/S
 9J/+Q3oU0vV9XgedrjRfVItiI8+wx/gDwEGQvOcQdHT0dK7rPrs7tauAxG84ALv0
 KS3mwkuPv/GjM+oMqg0vwdVm9KLLgwLlq48xK7j1kWf9RLIJadyvVCGvRhSqJzBR
 bDHmVIHewMR3Sz7GyWHb6UMgAZmk45+EtaOa6ezYs72I8iieywdFcZCEMijQHF0K
 Z+BoA5Q5AoDz+eSkx6v2MQ+sJogBuh4ytnISrrbPqI2Ut80rnj81Wzwqz2otH9YW
 Z8JxEw5OMnefi3GFGLl3c8KMKDUo7aFU0cCXQtlKg4Wg0LCS30Tnle3+7CK1/S7M
 3u5wXLU9DL7z15RoNPwM5CgH+NjwFKG15GiwJRGzoXEM1YzJoaJYWsk4bYeWOPyg
 7nD39SjbOGybZJTU6hnm4VNOpIfZ52WfuYKoKvWHKnce+SqyKPXn3nFiSxVm7Xhz
 s1M=
 =QVtk
 -----END PGP SIGNATURE-----

Merge tag 'nvme-5.17-2022-02-10' of git://git.infradead.org/nvme into block-5.17

Pull NVMe fixes from Christoph:

"nvme fixes for Linux 5.17

 - nvme-tcp: fix bogus request completion when failing to send AER
   (Sagi Grimberg)
 - add the missing nvme_complete_req tracepoint for batched completion
   (Bean Huo)"

* tag 'nvme-5.17-2022-02-10' of git://git.infradead.org/nvme:
  nvme-tcp: fix bogus request completion when failing to send AER
  nvme: add nvme_complete_req tracepoint for batched completion
This commit is contained in:
Jens Axboe 2022-02-10 06:56:43 -07:00
commit 93e2c52d71
2 changed files with 10 additions and 1 deletions

View File

@ -368,6 +368,7 @@ EXPORT_SYMBOL_GPL(nvme_complete_rq);
void nvme_complete_batch_req(struct request *req)
{
trace_nvme_complete_rq(req);
nvme_cleanup_cmd(req);
nvme_end_req_zoned(req);
}

View File

@ -913,7 +913,15 @@ static inline void nvme_tcp_done_send_req(struct nvme_tcp_queue *queue)
static void nvme_tcp_fail_request(struct nvme_tcp_request *req)
{
nvme_tcp_end_request(blk_mq_rq_from_pdu(req), NVME_SC_HOST_PATH_ERROR);
if (nvme_tcp_async_req(req)) {
union nvme_result res = {};
nvme_complete_async_event(&req->queue->ctrl->ctrl,
cpu_to_le16(NVME_SC_HOST_PATH_ERROR), &res);
} else {
nvme_tcp_end_request(blk_mq_rq_from_pdu(req),
NVME_SC_HOST_PATH_ERROR);
}
}
static int nvme_tcp_try_send_data(struct nvme_tcp_request *req)