HomeFreeBSD

nvme: Lock when processing an abort completion command.

Description

nvme: Lock when processing an abort completion command.

When processing an abort completion command, we have to lock. But we
have to lock the qpair of the original transaction (not the abort we're
completing). We do this to avoid races with checking the completion id
to tr mapping array, as well as to manually complete it.

Note: we don't handle the completion status of 'Asked to abort too many
transactions at once.' That will be fixed on subsequent commits. Add a
note to that effect for now since it's a harder problem to solve.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D46025

Details

Provenance
impAuthored on Jul 23 2024, 11:01 PM
Differential Revision
D46025: nvme: Lock when processing an abort completion command.
Parents
rG86909f7aeb68: nvme: Always lock and only avoid processing for recovery state
Branches
Unknown
Tags
Unknown