scsi: iscsi: Report unbind session event when the target has been removed
authorWu Bo <wubo40@huawei.com>
Tue, 24 Mar 2020 07:58:50 +0000 (15:58 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 1 Apr 2020 01:39:58 +0000 (21:39 -0400)
commit13e60d3ba287d96eeaf1deaadba51f71578119a3
treef93b04f04b6b477925db43161bdb96c85d3fbe95
parent763a18cbf79b0395ae09e63dc4d77335e4f88368
scsi: iscsi: Report unbind session event when the target has been removed

If the daemon is restarted or crashes while logging out of a session, the
unbind session event sent by the kernel is not processed and is lost.  When
the daemon starts again, the session can't be unbound because the daemon is
waiting for the event message. However, the kernel has already logged out
and the event will not be resent.

When iscsid restart is complete, logout session reports error:

Logging out of session [sid: 6, target: iqn.xxxxx, portal: xx.xx.xx.xx,3260]
iscsiadm: Could not logout of [sid: 6, target: iscsiadm -m node iqn.xxxxx, portal: xx.xx.xx.xx,3260].
iscsiadm: initiator reported error (9 - internal error)
iscsiadm: Could not logout of all requested sessions

Make sure the unbind event is emitted.

[mkp: commit desc and applied by hand since patch was mangled]

Link: https://lore.kernel.org/r/4eab1771-2cb3-8e79-b31c-923652340e99@huawei.com
Reviewed-by: Lee Duncan <lduncan@suse.com>
Signed-off-by: Wu Bo <wubo40@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_transport_iscsi.c