A request taken back by a reset was reported to CAM as an error, which
used up a retry. A few resets in a row failed the I/O even though the
device never saw it.
Pass the overall command status to the completion callback and requeue
aborted requests. The polled completion carries it too, so the
passthrough ioctl reports it instead of a placeholder zero. The abort
path now reports an invalid status instead of aborted, so a command
that never finishes still uses up its retries.
Sponsored by: Samsung Electronics