Do not retry failed async event requests.

Sponsored by:	Intel
MFC after:	3 days
This commit is contained in:
jimharris 2013-07-09 21:03:39 +00:00
parent 44e3ab8eb0
commit 1dabbdc24c

View File

@ -649,12 +649,12 @@ nvme_ctrlr_async_event_cb(void *arg, const struct nvme_completion *cpl)
{
struct nvme_async_event_request *aer = arg;
if (cpl->status.sc == NVME_SC_ABORTED_SQ_DELETION) {
if (nvme_completion_is_error(cpl)) {
/*
* This is simulated when controller is being shut down, to
* effectively abort outstanding asynchronous event requests
* and make sure all memory is freed. Do not repost the
* request in this case.
* Do not retry failed async event requests. This avoids
* infinite loops where a new async event request is submitted
* to replace the one just failed, only to fail again and
* perpetuate the loop.
*/
return;
}