mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-04-29 12:28:27 +02:00
scsi: iscsi: Fix incorrect error path labels for flashnode operations
[ Upstream commit9b17621366] Correct the error handling goto labels used when host lookup fails in various flashnode-related event handlers: - iscsi_new_flashnode() - iscsi_del_flashnode() - iscsi_login_flashnode() - iscsi_logout_flashnode() - iscsi_logout_flashnode_sid() scsi_host_put() is not required when shost is NULL, so jumping to the correct label avoids unnecessary operations. These functions previously jumped to the wrong goto label (put_host), which did not match the intended cleanup logic. Use the correct exit labels (exit_new_fnode, exit_del_fnode, etc.) to ensure proper error handling. Also remove the unused put_host label under iscsi_new_flashnode() as it is no longer needed. No functional changes beyond accurate error path correction. Fixes:c6a4bb2ef5("[SCSI] scsi_transport_iscsi: Add flash node mgmt support") Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com> Link: https://lore.kernel.org/r/20250530193012.3312911-1-alok.a.tiwari@oracle.com Reviewed-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5c89dc8c34
commit
75ad1ca646
@@ -3545,7 +3545,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);
|
||||
@@ -3555,7 +3555,6 @@ static int iscsi_new_flashnode(struct iscsi_transport *transport,
|
||||
else
|
||||
err = -EIO;
|
||||
|
||||
put_host:
|
||||
scsi_host_put(shost);
|
||||
|
||||
exit_new_fnode:
|
||||
@@ -3580,7 +3579,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;
|
||||
@@ -3622,7 +3621,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;
|
||||
@@ -3674,7 +3673,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;
|
||||
@@ -3724,7 +3723,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);
|
||||
|
||||
Reference in New Issue
Block a user