HomeFreeBSD

mps(4): Fix unmatched devq release.

Description

mps(4): Fix unmatched devq release.

Port 9781c28c6d63 and a8837c77efd0 to the mps driver. Before this
change devq was frozen only if some command was sent to the target after
reset started, but release was called always. This change freezes the
devq immediately, leaving mprsas_action_scsiio() check only to cover
race condition due to different lock devq use.

This should also avoid unnecessary requeue of the commands, creating
additional log noise and confusing some broken apps. It also avoids a
'busy' requeue of I/Os failing when we're doing recovery that takes
longer than the normal busy timeout. These I/Os failing can lead to
filesystems being unmounted in the force unmount case for I/O errors.

Sponsored by: Netflix
Reviewed by: mav
Differential Revision: https://reviews.freebsd.org/D33228

(cherry picked from commit a10253cffea84c0c980a36ba6776b00ed96c3e3b)

Details

Provenance
impAuthored on Dec 2 2021, 8:53 PM
mavCommitted on Jan 6 2022, 7:03 PM
Reviewer
mav
Differential Revision
D33228: mps(4): Fix unmatched devq release.
Parents
rG0565198d8092: Fix "set but not used" warnings in the mps driver.
Branches
Unknown
Tags
Unknown