In current code, it jumps to put_host() when scsi_host_lookup()
failes to get host. Jump to correct label to fix it.

Signed-off-by: Jing Xiangfeng <[email protected]>
---
 drivers/scsi/scsi_transport_iscsi.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index 7ae5024..5984596 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -3341,7 +3341,7 @@ static int iscsi_new_flashnode(struct iscsi_transport 
*transport,
                pr_err("%s could not find host no %u\n",
                       __func__, ev->u.new_flashnode.host_no);
                err = -ENODEV;
-               goto put_host;
+               goto exit_new_fnode;
        }
 
        index = transport->new_flashnode(shost, data, len);
@@ -3351,7 +3351,6 @@ static int iscsi_new_flashnode(struct iscsi_transport 
*transport,
        else
                err = -EIO;
 
-put_host:
        scsi_host_put(shost);
 
 exit_new_fnode:
@@ -3376,7 +3375,7 @@ static int iscsi_del_flashnode(struct iscsi_transport 
*transport,
                pr_err("%s could not find host no %u\n",
                       __func__, ev->u.del_flashnode.host_no);
                err = -ENODEV;
-               goto put_host;
+               goto exit_del_fnode;
        }
 
        idx = ev->u.del_flashnode.flashnode_idx;
@@ -3418,7 +3417,7 @@ static int iscsi_login_flashnode(struct iscsi_transport 
*transport,
                pr_err("%s could not find host no %u\n",
                       __func__, ev->u.login_flashnode.host_no);
                err = -ENODEV;
-               goto put_host;
+               goto exit_login_fnode;
        }
 
        idx = ev->u.login_flashnode.flashnode_idx;
@@ -3470,7 +3469,7 @@ static int iscsi_logout_flashnode(struct iscsi_transport 
*transport,
                pr_err("%s could not find host no %u\n",
                       __func__, ev->u.logout_flashnode.host_no);
                err = -ENODEV;
-               goto put_host;
+               goto exit_logout_fnode;
        }
 
        idx = ev->u.logout_flashnode.flashnode_idx;
@@ -3520,7 +3519,7 @@ static int iscsi_logout_flashnode_sid(struct 
iscsi_transport *transport,
                pr_err("%s could not find host no %u\n",
                       __func__, ev->u.logout_flashnode.host_no);
                err = -ENODEV;
-               goto put_host;
+               goto exit_logout_sid;
        }
 
        session = iscsi_session_lookup(ev->u.logout_flashnode_sid.sid);
-- 
1.8.3.1

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/20200727024340.163937-1-jingxiangfeng%40huawei.com.

Reply via email to