summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2011-02-24 16:58:20 -0800
committerJames Bottomley <James.Bottomley@suse.de>2011-02-28 11:23:32 -0600
commit52208ae3fc60cbcb214c10fb8b82304199e2cc3a (patch)
treed7c7e938453b257ce49197cb91f64fed1860b254 /ipc
parent493f3358cb289ccf716c5a14fa5bb52ab75943e5 (diff)
downloadblackbird-op-linux-52208ae3fc60cbcb214c10fb8b82304199e2cc3a.tar.gz
blackbird-op-linux-52208ae3fc60cbcb214c10fb8b82304199e2cc3a.zip
[SCSI] target: Fix t_transport_aborted handling in LUN_RESET + active I/O shutdown
This patch addresses two outstanding bugs related to T_TASK(cmd)->t_transport_aborted handling during TMR LUN_RESET and active I/O shutdown. This first involves adding two explict t_transport_aborted=1 assignments in core_tmr_lun_reset() in order to signal the task has been aborted, and updating transport_generic_wait_for_tasks() to skip sleeping when t_transport_aborted=1 has been set. This fixes an issue where transport_generic_wait_for_tasks() would end up sleeping indefinately when called from fabric module context while TMR LUN_RESET was happening with long outstanding backend struct se_task not yet being completed. The second adds a missing call to transport_remove_task_from_execute_queue() when task->task_execute_queue=1 is set in order to fix an OOPs when task->t_execute_list has not been dropped. It also fixes the same case in transport_processing_shutdown() to prevent the issue from happening during active I/O struct se_device shutdown. Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud