aboutsummaryrefslogtreecommitdiff
path: root/block/curl.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-08-18 23:35:49 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2012-08-20 15:58:47 +0200
commit1bd075f29ea6d11853475c7c42734595720c3ac6 (patch)
tree48ce18410e123fd698e82ef27f7155a28e313deb /block/curl.c
parentcfb3f5064af2d2e29c976e292c9472dfe9d61e31 (diff)
downloadqemu-1bd075f29ea6d11853475c7c42734595720c3ac6.zip
qemu-1bd075f29ea6d11853475c7c42734595720c3ac6.tar.gz
qemu-1bd075f29ea6d11853475c7c42734595720c3ac6.tar.bz2
iscsi: fix races between task completion and abort
This patch fixes two main issues with block/iscsi.c: 1) iscsi_task_mgmt_abort_task_async calls iscsi_scsi_task_cancel which was also directly called in iscsi_aio_cancel 2) a race between task completion and task abortion could happen cause the scsi_free_scsi_task were done before iscsi_schedule_bh has finished. To fix this, all the freeing of IscsiTasks and releasing of the AIOCBs is centralized in iscsi_bh_cb, independent of whether the SCSI command has completed or was cancelled. 3) iscsi_aio_cancel was not synchronously waiting for the end of the command. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'block/curl.c')
0 files changed, 0 insertions, 0 deletions