]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r314086: Fix multiple problems around LUN disable under load.
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 6 Mar 2017 06:22:37 +0000 (06:22 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 6 Mar 2017 06:22:37 +0000 (06:22 +0000)
commit734345b8b0a511aac4bb11cbe958adff1a8a76e4
treebc8bfa5c0d8c70e20fb11e5e62cab88b5a444a3b
parenta5714059fc5404cf9b74f9746f80710d109ef5d9
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.

git-svn-id: svn://svn.freebsd.org/base/stable/10@314733 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/isp/isp_freebsd.c
sys/dev/isp/isp_freebsd.h
sys/dev/isp/isp_target.c