[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] libiscsi task cancellation
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] libiscsi task cancellation |
Date: |
Thu, 8 Feb 2018 15:14:50 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 08/02/2018 15:08, Stefan Hajnoczi wrote:
> Now on to libiscsi:
>
> The iscsi_task_mgmt_async() API documentation says:
>
> * abort_task will also cancel the scsi task. The callback for the
> scsi task will be invoked with
> * SCSI_STATUS_CANCELLED
>
> I see that the ABORT TASK TMF response invokes the user's
> iscsi_task_mgmt_async() callback but not the command callback. I'm
> not sure how the command callback is invoked with
> SCSI_STATUS_CANCELLED unless libiscsi is relying on the target to send
> that response.
>
> Is libiscsi honoring its iscsi_task_mgmt_async() contract?
No, and QEMU is assuming the "wrong" behavior:
static void
iscsi_abort_task_cb(struct iscsi_context *iscsi, int status, void *command_data,
void *private_data)
{
IscsiAIOCB *acb = private_data;
acb->status = -ECANCELED;
iscsi_schedule_bh(acb);
}
Paolo