-
Nicholas Bellinger authored
This patch addresses a bug for backends such as IBLOCK that perform asynchronous completion via transport_complete_cmd(), that will call target_complete_failure_work() -> transport_generic_request_failure(), upon exception status and invoke cmd->transport_complete_callback() -> compare_and_write_callback() incorrectly during the failure case. It adds a check for a non zero se_cmd->scsi_status within the first invocation of compare_and_write_callback(), and will jump to out plus up se_device->caw_sem before exiting the callback. Reported-by:
Thomas Glanzmann <thomas@glanzmann.de> Tested-by:
Thomas Glanzmann <thomas@glanzmann.de> Signed-off-by:
Nicholas Bellinger <nab@linux-iscsi.org>
db60df88