From: Lee Duncan <lduncan@suse.com>
Date: Sun 29 May 2022 09:55:25 AM PDT
Subject: [PATCH] kABI: fix removal of iscsi_destroy_conn
Patch-mainline: Never, kABI fix
References: bsc#1198410
Patch scsi-libiscsi-Teardown-iscsi_cls_conn-gracefully.patch removed
iscsi_destroy_conn() since it was no longer needed, but this patch
puts it back, in case any external module expects it to be present,
for kABI compatability.
---
drivers/scsi/scsi_transport_iscsi.c | 23 +++++++++++++++++++++++
include/scsi/scsi_transport_iscsi.h | 4 ++++
2 files changed, 27 insertions(+)
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -2517,6 +2517,29 @@ void iscsi_remove_conn(struct iscsi_cls_
}
EXPORT_SYMBOL_GPL(iscsi_remove_conn);
+/**
+ * iscsi_destroy_conn - destroy iscsi class connection
+ * @conn: iscsi cls session
+ *
+ * This can be called from a LLD or iscsi_transport.
+ *
+ * NOTE: This is here for kABI compatability
+ */
+int iscsi_destroy_conn(struct iscsi_cls_conn *conn)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&connlock, flags);
+ list_del(&conn->conn_list);
+ spin_unlock_irqrestore(&connlock, flags);
+
+ transport_unregister_device(&conn->dev);
+ ISCSI_DBG_TRANS_CONN(conn, "Completing conn destruction\n");
+ device_unregister(&conn->dev);
+ return 0;
+}
+EXPORT_SYMBOL_GPL(iscsi_destroy_conn);
+
void iscsi_put_conn(struct iscsi_cls_conn *conn)
{
put_device(&conn->dev);
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -454,6 +454,10 @@ extern int iscsi_add_conn(struct iscsi_c
extern void iscsi_remove_conn(struct iscsi_cls_conn *conn);
extern void iscsi_put_conn(struct iscsi_cls_conn *conn);
extern void iscsi_get_conn(struct iscsi_cls_conn *conn);
+
+/* this is here for kABI compatability */
+extern int iscsi_destroy_conn(struct iscsi_cls_conn *conn);
+
extern void iscsi_unblock_session(struct iscsi_cls_session *session);
extern void iscsi_block_session(struct iscsi_cls_session *session);
extern int iscsi_scan_finished(struct Scsi_Host *shost, unsigned long time);