diff options
Diffstat (limited to 'drivers/scsi/libiscsi.c')
-rw-r--r-- | drivers/scsi/libiscsi.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index d0701791113..dfaa8adf099 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c | |||
@@ -1603,8 +1603,11 @@ static void fail_all_commands(struct iscsi_conn *conn, unsigned lun, | |||
1603 | { | 1603 | { |
1604 | struct iscsi_task *task, *tmp; | 1604 | struct iscsi_task *task, *tmp; |
1605 | 1605 | ||
1606 | if (conn->task && (conn->task->sc->device->lun == lun || lun == -1)) | 1606 | if (conn->task) { |
1607 | conn->task = NULL; | 1607 | if (lun == -1 || |
1608 | (conn->task->sc && conn->task->sc->device->lun == lun)) | ||
1609 | conn->task = NULL; | ||
1610 | } | ||
1608 | 1611 | ||
1609 | /* flush pending */ | 1612 | /* flush pending */ |
1610 | list_for_each_entry_safe(task, tmp, &conn->xmitqueue, running) { | 1613 | list_for_each_entry_safe(task, tmp, &conn->xmitqueue, running) { |