- Fixes 2 shutdown problems

- Cosmetics


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@204 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2007-10-02 15:04:04 +00:00
parent a779f1a343
commit a8c124da1b
10 changed files with 62 additions and 22 deletions
-1
View File
@@ -2541,7 +2541,6 @@ static void __exit iscsi_exit(void)
#endif
}
module_init(iscsi_init);
module_exit(iscsi_exit);
+3 -3
View File
@@ -172,15 +172,15 @@ static void close_conn(struct iscsi_conn *conn)
msleep(50);
}
TRACE_CONN_CLOSE("Notifying user space about closing conn %p", conn);
event_send(target->tid, session->sid, conn->cid, E_CONN_CLOSE, 0);
mutex_lock(&target->target_mutex);
conn_free(conn);
if (list_empty(&session->conn_list))
session_del(target, session->sid);
mutex_unlock(&target->target_mutex);
TRACE_CONN_CLOSE("Notifying user space about closing conn %p", conn);
event_send(target->tid, session->sid, conn->cid, E_CONN_CLOSE, 0);
TRACE_EXIT();
return;
}
+5
View File
@@ -186,8 +186,13 @@ static void trgt_param_get(struct iscsi_trgt_param *param, struct iscsi_param_in
static int trgt_param(struct iscsi_target *target, struct iscsi_param_info *info, int set)
{
if (set) {
struct iscsi_trgt_param *prm;
trgt_param_check(info);
trgt_param_set(target, info);
prm = &target->trgt_param;
PRINT_INFO_PR("Target parameter changed: queued_cmnds %d",
prm->queued_cmnds);
} else
trgt_param_get(&target->trgt_param, info);
+8 -6
View File
@@ -229,26 +229,28 @@ void target_del_all(void)
struct iscsi_session *session, *ts;
mutex_lock(&target->target_mutex);
if (!list_empty(&target->session_list)) {
TRACE_DBG("target %p", target);
TRACE_MGMT_DBG("Cleaning up target %p", target);
list_for_each_entry_safe(session, ts, &target->session_list,
session_list_entry) {
TRACE_DBG("session %p", session);
TRACE_MGMT_DBG("Cleaning up session %p", session);
if (!list_empty(&session->conn_list)) {
struct iscsi_conn *conn, *tc;
list_for_each_entry_safe(conn, tc,
&session->conn_list,
conn_list_entry) {
TRACE_DBG("conn %p", conn);
TRACE_MGMT_DBG("Mark conn %p "
"closing", conn);
mark_conn_closed(conn);
}
} else {
TRACE_DBG("session %p with empty "
"connection list", session);
TRACE_MGMT_DBG("Freeing session %p "
"without connections", session);
session_del(target, session->sid);
}
}
mutex_unlock(&target->target_mutex);
} else {
TRACE_DBG("deleting target %p", target);
TRACE_MGMT_DBG("Deleting target %p", target);
list_del(&target->target_list_entry);
nr_targets--;
mutex_unlock(&target->target_mutex);
+14
View File
@@ -209,6 +209,20 @@ static void accept_connection(int listen)
return;
}
if (from.ss_family == AF_INET) {
struct sockaddr_in *in = (struct sockaddr_in *)&from;
log_info("Connect from %s:%hd", inet_ntoa(in->sin_addr),
ntohs(in->sin_port));
} else if (from.ss_family == AF_INET6) {
struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)&from;
log_info("Connect from %x:%x:%x:%x:%x:%x:%x:%x.%hd",
in6->sin6_addr.s6_addr16[7], in6->sin6_addr.s6_addr16[6],
in6->sin6_addr.s6_addr16[5], in6->sin6_addr.s6_addr16[4],
in6->sin6_addr.s6_addr16[3], in6->sin6_addr.s6_addr16[2],
in6->sin6_addr.s6_addr16[1], in6->sin6_addr.s6_addr16[0],
ntohs(in6->sin6_port));
}
if (conn_blocked) {
log_warning("A connection refused\n");
close(fd);
+2
View File
@@ -181,6 +181,8 @@ extern int log_daemon;
extern int log_level;
extern void log_init(void);
extern void log_info(const char *fmt, ...)
__attribute__ ((format (printf, 1, 2)));
extern void log_warning(const char *fmt, ...)
__attribute__ ((format (printf, 1, 2)));
extern void log_error(const char *fmt, ...)
+18 -3
View File
@@ -19,6 +19,7 @@
#include <stdio.h>
#include <syslog.h>
#include <sys/time.h>
#include <string.h>
#include "iscsid.h"
@@ -33,9 +34,15 @@ void log_init(void)
static void dolog(int prio, const char *fmt, va_list ap)
{
if (log_daemon)
vsyslog(prio, fmt, ap);
else {
if (log_daemon) {
int len = strlen(fmt);
char f[len+1+1];
if (fmt[len] != '\n')
sprintf(f, "%s\n", fmt);
else
sprintf(f, "%s", fmt);
vsyslog(prio, f, ap);
} else {
struct timeval time;
gettimeofday(&time, NULL);
@@ -46,6 +53,14 @@ static void dolog(int prio, const char *fmt, va_list ap)
}
}
void log_info(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
dolog(LOG_INFO, fmt, ap);
va_end(ap);
}
void log_warning(const char *fmt, ...)
{
va_list ap;
+1 -1
View File
@@ -587,7 +587,7 @@ set the above options using debug2perf script file.
- You may need to increase amount of requests that OS on initiator
sends to the target device. To do it on Linux initiators, run
echo “512” > /sys/block/sdX/queue/nr_requests
echo “64” > /sys/block/sdX/queue/nr_requests
where X is a device letter like above.
+8 -7
View File
@@ -325,8 +325,8 @@ struct scst_tgt *scst_register(struct scst_tgt_template *vtt,
mutex_unlock(&scst_mutex);
scst_resume_activity();
PRINT_INFO_PR("Target %s for template %s registered successfully",
target_name, vtt->name);
PRINT_INFO_PR("Target %s (%p) for template %s registered successfully",
target_name, tgt, vtt->name);
out:
TRACE_EXIT();
@@ -344,7 +344,8 @@ out_free_err:
tgt = NULL;
out_err:
PRINT_ERROR_PR("Failed to register target for template %s", vtt->name);
PRINT_ERROR_PR("Failed to register target %s for template %s",
target_name, vtt->name);
goto out;
}
@@ -393,10 +394,10 @@ void scst_unregister(struct scst_tgt *tgt)
del_timer_sync(&tgt->retry_timer);
kfree(tgt);
PRINT_INFO_PR("Target %p for template %s unregistered successfully",
tgt, vtt->name);
PRINT_INFO_PR("Target for template %s unregistered successfully",
vtt->name);
kfree(tgt);
TRACE_EXIT();
return;
@@ -445,8 +446,8 @@ void scst_resume_activity(void)
mutex_lock(&scst_suspend_mutex);
TRACE_MGMT_DBG("suspend_count %d", suspend_count);
suspend_count--;
TRACE_MGMT_DBG("suspend_count %d left", suspend_count);
if (suspend_count > 0)
goto out_up;
+3 -1
View File
@@ -4164,7 +4164,7 @@ static int scst_init_session(struct scst_session *sess)
acg->acg_name, sess->initiator_name);
sess->acg = acg;
TRACE_DBG("Assigning session %p to acg %s", sess, acg->acg_name);
TRACE_MGMT_DBG("Assigning session %p to acg %s", sess, acg->acg_name);
list_add_tail(&sess->acg_sess_list_entry, &acg->acg_sess_list);
TRACE_DBG("Adding sess %p to tgt->sess_list", sess);
@@ -4292,6 +4292,8 @@ void scst_unregister_session(struct scst_session *sess, int wait,
TRACE_ENTRY();
TRACE_MGMT_DBG("Unregistering session %p (wait %d)", sess, wait);
#ifdef CONFIG_LOCKDEP
pc = sess->shutdown_compl;
#else