diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-08-18 23:35:49 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2012-08-20 15:58:47 +0200 |
commit | 1bd075f29ea6d11853475c7c42734595720c3ac6 (patch) | |
tree | 48ce18410e123fd698e82ef27f7155a28e313deb /block/curl.c | |
parent | cfb3f5064af2d2e29c976e292c9472dfe9d61e31 (diff) | |
download | qemu-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