Re: [PATCH v2] scsi:libiscsi: Hold back_lock when calling iscsi_complete_task

From: Martin K. Petersen
Date: Thu Mar 07 2019 - 21:38:19 EST



Lee,

> If there is an error queueing an iscsi command in
> iscsi_queuecommand(), for example if the transport fails to take the
> command in sessuin->tt->xmit_task(), then the error path can call
> iscsi_complete_task() without first aquiring the back_lock as
> required. This can lead to things like ITT pool can get corrupt,
> resulting in duplicate ITTs being sent out.
>
> The solution is to hold the back_lock around iscsi_complete_task()
> calls, and to add a little commenting to help others understand when
> back_lock must be held.

Applied to 5.1/scsi-queue, thanks!

--
Martin K. Petersen Oracle Linux Engineering