[stgt] [PATCH 13/15] Return appropriate errors if "tgtadm --op delete --mode conn" fails
Arne Redlich
arne.redlich at googlemail.com
Tue Jun 9 18:22:52 CEST 2009
Signed-off-by: Arne Redlich <arne.redlich at googlemail.com>
---
usr/iscsi/conn.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/usr/iscsi/conn.c b/usr/iscsi/conn.c
index 56ba2c4..61b570e 100644
--- a/usr/iscsi/conn.c
+++ b/usr/iscsi/conn.c
@@ -27,6 +27,7 @@
#include "iscsid.h"
#include "tgtd.h"
#include "util.h"
+#include "tgtadm_error.h"
void conn_add_to_session(struct iscsi_connection *conn, struct iscsi_session *session)
{
@@ -211,27 +212,30 @@ int conn_take_fd(struct iscsi_connection *conn)
return 0;
}
+/* called by tgtadm */
int conn_close_force(uint32_t tid, uint64_t sid, uint32_t cid)
{
struct iscsi_target* target = NULL;
struct iscsi_session *session;
struct iscsi_connection *conn;
+ int sess_found = 0;
target = target_find_by_id(tid);
if (!target)
- return 0;
+ return TGTADM_NO_TARGET;
list_for_each_entry(session, &target->sessions_list, slist) {
if (session->tsih == sid) {
+ sess_found = 1;
list_for_each_entry(conn, &session->conn_list, clist) {
if (conn->cid == cid) {
eprintf("close %" PRIx64 " %u\n", sid, cid);
conn_close(conn);
- goto out;
+ return TGTADM_SUCCESS;
}
}
}
}
-out:
- return 0;
+
+ return sess_found ? TGTADM_NO_CONNECTION : TGTADM_NO_SESSION;
}
--
1.6.0.4
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the stgt
mailing list