summaryrefslogtreecommitdiff
path: root/init/.gitignore
diff options
context:
space:
mode:
authorWenchao Hao <haowenchao@huawei.com>2022-11-26 09:07:52 +0800
committerMartin K. Petersen <martin.petersen@oracle.com>2022-12-14 02:49:19 +0000
commita3be19b91ea7121d388084e8c07f5b1b982eb40c (patch)
tree81ad2549dd8d860b78debaeca84cd414e6baf974 /init/.gitignore
parent68ad83188d782b2ecef2e41ac245d27e0710fe8e (diff)
scsi: iscsi: Fix multiple iSCSI session unbind events sent to userspace
It was observed that the kernel would potentially send ISCSI_KEVENT_UNBIND_SESSION multiple times. Introduce 'target_state' in iscsi_cls_session() to make sure session will send only one unbind session event. This introduces a regression wrt. the issue fixed in commit 13e60d3ba287 ("scsi: iscsi: Report unbind session event when the target has been removed"). If iscsid dies for any reason after sending an unbind session to kernel, once iscsid is restarted, the kernel's ISCSI_KEVENT_UNBIND_SESSION event is lost and userspace is then unable to logout. However, the session is actually in invalid state (its target_id is INVALID) so iscsid should not sync this session during restart. Consequently we need to check the session's target state during iscsid restart. If session is in unbound state, do not sync this session and perform session teardown. This is OK because once a session is unbound, we can not recover it any more (mainly because its target id is INVALID). Signed-off-by: Wenchao Hao <haowenchao@huawei.com> Link: https://lore.kernel.org/r/20221126010752.231917-1-haowenchao@huawei.com Reviewed-by: Mike Christie <michael.christie@oracle.com> Reviewed-by: Wu Bo <wubo40@huawei.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'init/.gitignore')
0 files changed, 0 insertions, 0 deletions