OSDN Git Service

scsi: iscsi: Fail session and connection on transport registration failure
authorGabriel Krisman Bertazi <krisman@collabora.com>
Mon, 6 Jan 2020 18:58:17 +0000 (13:58 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 16 Jan 2020 03:55:37 +0000 (22:55 -0500)
commitf3c893e3dbb5d94f94072f7b1f2a8aece6240e7e
treed932e4d35db11c7d0a4bfe2dccd2fb7c994e15d7
parentcd7ea70bb00aac8f7ab1b0635edc669e12f53891
scsi: iscsi: Fail session and connection on transport registration failure

If the transport cannot be registered, the session/connection creation
needs to be failed early to let the initiator know.  Otherwise, the system
will have an outstanding connection that cannot be used nor removed by
open-iscsi. The result is similar to the error below, triggered by
injecting a failure in the transport's registration path.

openiscsi reports success:

root@debian-vm:~#  iscsiadm -m node -T iqn:lun1 -p 127.0.0.1 -l
Logging in to [iface: default, target: iqn:lun1, portal: 127.0.0.1,3260]
Login to [iface: default, target: iqn:lun1, portal:127.0.0.1,3260] successful.

But cannot remove the session afterwards, since the kernel is in an
inconsistent state.

root@debian-vm:~#  iscsiadm -m node -T iqn:lun1 -p 127.0.0.1 -u
iscsiadm: No matching sessions found

Link: https://lore.kernel.org/r/20200106185817.640331-4-krisman@collabora.com
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_transport_iscsi.c