From 55f7a675d61f8b83478e71d4f9efb3a1b789eb08 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 4 Jul 2016 16:14:22 +0100 Subject: [PATCH] [iscsi] Treat redirection failures as fatal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Debugged-by: Robin Smidsrød Signed-off-by: Michael Brown --- src/net/tcp/iscsi.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/net/tcp/iscsi.c b/src/net/tcp/iscsi.c index 019a4c14e..ec004e4ba 100644 --- a/src/net/tcp/iscsi.c +++ b/src/net/tcp/iscsi.c @@ -1710,6 +1710,7 @@ static int iscsi_vredirect ( struct iscsi_session *iscsi, int type, va_list args ) { va_list tmp; struct sockaddr *peer; + int rc; /* Intercept redirects to a LOCATION_SOCKET and record the IP * address for the iBFT. This is a bit of a hack, but avoids @@ -1725,7 +1726,15 @@ static int iscsi_vredirect ( struct iscsi_session *iscsi, int type, va_end ( tmp ); } - return xfer_vreopen ( &iscsi->socket, type, args ); + /* Redirect to new location */ + if ( ( rc = xfer_vreopen ( &iscsi->socket, type, args ) ) != 0 ) + goto err; + + return 0; + + err: + iscsi_close ( iscsi, rc ); + return rc; } /** iSCSI socket interface operations */