HomeFreeBSD

MFC r314086: Fix multiple problems around LUN disable under load.

Description

MFC r314086: Fix multiple problems around LUN disable under load.

  • Move private data about ATIOs/INOTs from per-LUN to per-channel data.

This allows active commands to continue operation after LUN destruction.
This also simplifies lookup of the data by tag in some situations.

  • Unify three restart_queue processing implementations.
  • Complete all ATIOs from restart_queue on LUN disable.
  • Delete ATIO private data when command completed or aborted, not depending

on the ATIO being requeued, that was ugly hack and could never happen. CAM
should always call ether XPT_CONT_TARGET_IO with status or XPT_ABORT.

  • Implement XPT_ABORT for queued ATIOs/INOTs to allow CAM do graceful

shutdown, not depending on LUN disable, as it is done in ahd(4)/targ(4).

  • Unify isp_endcmd() arguments to make it more usable in generic code.
  • Remove never really used LUN state reference counter.

Details

Provenance
mavAuthored on
Parents
rS314731: MFC r314045: Remove duplicate INOT allocation.
Branches
Unknown
Tags
Unknown