aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_tmr.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2011-10-17 13:56:45 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2011-10-24 03:21:39 +0000
commit0c2cfe5fe78e682d6235a1d32a363460b1c77528 (patch)
treefae9d86d8415ea163a49df6bf290aaef8901702e /drivers/target/target_core_tmr.c
parentb7b8bef7f8c1c9b3358127608e867db7cd928022 (diff)
downloadkernel_samsung_smdk4412-0c2cfe5fe78e682d6235a1d32a363460b1c77528.zip
kernel_samsung_smdk4412-0c2cfe5fe78e682d6235a1d32a363460b1c77528.tar.gz
kernel_samsung_smdk4412-0c2cfe5fe78e682d6235a1d32a363460b1c77528.tar.bz2
target: fix list walking in transport_free_dev_tasks
list_for_each_entry_safe only protects against deletions from the list, but not against any concurrent modifications. Given that we drop t_state_lock inside the loop it is not safe in transport_free_dev_tasks. Instead of use a local dispose_list that we move all tasks that are to be deleted to. This is safe because we never do list_emptry checks on t_list to check if a command is on the list anywhere. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_tmr.c')
0 files changed, 0 insertions, 0 deletions