Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 312701
b: refs/heads/master
c: bf6932f
h: refs/heads/master
i:
  312699: 30b4f34
v: v3
  • Loading branch information
Al Viro authored and Nicholas Bellinger committed Jul 21, 2012
1 parent cad4693 commit 61b5713
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 79 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2962846d14769e526b5d266f4af998b5a027b1d7
refs/heads/master: bf6932f44a7b3fa7e2246a8b18a44670e5eab6c2
22 changes: 3 additions & 19 deletions trunk/drivers/target/iscsi/iscsi_target.c
Original file line number Diff line number Diff line change
Expand Up @@ -429,19 +429,8 @@ int iscsit_reset_np_thread(

int iscsit_del_np_comm(struct iscsi_np *np)
{
if (!np->np_socket)
return 0;

/*
* Some network transports allocate their own struct sock->file,
* see if we need to free any additional allocated resources.
*/
if (np->np_flags & NPF_SCTP_STRUCT_FILE) {
kfree(np->np_socket->file);
np->np_socket->file = NULL;
}

sock_release(np->np_socket);
if (np->np_socket)
sock_release(np->np_socket);
return 0;
}

Expand Down Expand Up @@ -4079,13 +4068,8 @@ int iscsit_close_connection(
kfree(conn->conn_ops);
conn->conn_ops = NULL;

if (conn->sock) {
if (conn->conn_flags & CONNFLAG_SCTP_STRUCT_FILE) {
kfree(conn->sock->file);
conn->sock->file = NULL;
}
if (conn->sock)
sock_release(conn->sock);
}
conn->thread_set = NULL;

pr_debug("Moving to TARG_CONN_STATE_FREE.\n");
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/target/iscsi/iscsi_target_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@ enum iscsi_timer_flags_table {
/* Used for struct iscsi_np->np_flags */
enum np_flags_table {
NPF_IP_NETWORK = 0x00,
NPF_SCTP_STRUCT_FILE = 0x01 /* Bugfix */
};

/* Used for struct iscsi_np->np_thread_state */
Expand Down Expand Up @@ -504,7 +503,6 @@ struct iscsi_conn {
u16 local_port;
int net_size;
u32 auth_id;
#define CONNFLAG_SCTP_STRUCT_FILE 0x01
u32 conn_flags;
/* Used for iscsi_tx_login_rsp() */
u32 login_itt;
Expand Down
60 changes: 3 additions & 57 deletions trunk/drivers/target/iscsi/iscsi_target_login.c
Original file line number Diff line number Diff line change
Expand Up @@ -794,22 +794,6 @@ int iscsi_target_setup_login_socket(
return ret;
}
np->np_socket = sock;
/*
* The SCTP stack needs struct socket->file.
*/
if ((np->np_network_transport == ISCSI_SCTP_TCP) ||
(np->np_network_transport == ISCSI_SCTP_UDP)) {
if (!sock->file) {
sock->file = kzalloc(sizeof(struct file), GFP_KERNEL);
if (!sock->file) {
pr_err("Unable to allocate struct"
" file for SCTP\n");
ret = -ENOMEM;
goto fail;
}
np->np_flags |= NPF_SCTP_STRUCT_FILE;
}
}
/*
* Setup the np->np_sockaddr from the passed sockaddr setup
* in iscsi_target_configfs.c code..
Expand Down Expand Up @@ -869,21 +853,15 @@ int iscsi_target_setup_login_socket(

fail:
np->np_socket = NULL;
if (sock) {
if (np->np_flags & NPF_SCTP_STRUCT_FILE) {
kfree(sock->file);
sock->file = NULL;
}

if (sock)
sock_release(sock);
}
return ret;
}

static int __iscsi_target_login_thread(struct iscsi_np *np)
{
u8 buffer[ISCSI_HDR_LEN], iscsi_opcode, zero_tsih = 0;
int err, ret = 0, set_sctp_conn_flag, stop;
int err, ret = 0, stop;
struct iscsi_conn *conn = NULL;
struct iscsi_login *login;
struct iscsi_portal_group *tpg = NULL;
Expand All @@ -894,7 +872,6 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
struct sockaddr_in6 sock_in6;

flush_signals(current);
set_sctp_conn_flag = 0;
sock = np->np_socket;

spin_lock_bh(&np->np_thread_lock);
Expand All @@ -917,35 +894,12 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
spin_unlock_bh(&np->np_thread_lock);
goto out;
}
/*
* The SCTP stack needs struct socket->file.
*/
if ((np->np_network_transport == ISCSI_SCTP_TCP) ||
(np->np_network_transport == ISCSI_SCTP_UDP)) {
if (!new_sock->file) {
new_sock->file = kzalloc(
sizeof(struct file), GFP_KERNEL);
if (!new_sock->file) {
pr_err("Unable to allocate struct"
" file for SCTP\n");
sock_release(new_sock);
/* Get another socket */
return 1;
}
set_sctp_conn_flag = 1;
}
}

iscsi_start_login_thread_timer(np);

conn = kzalloc(sizeof(struct iscsi_conn), GFP_KERNEL);
if (!conn) {
pr_err("Could not allocate memory for"
" new connection\n");
if (set_sctp_conn_flag) {
kfree(new_sock->file);
new_sock->file = NULL;
}
sock_release(new_sock);
/* Get another socket */
return 1;
Expand All @@ -955,9 +909,6 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
conn->conn_state = TARG_CONN_STATE_FREE;
conn->sock = new_sock;

if (set_sctp_conn_flag)
conn->conn_flags |= CONNFLAG_SCTP_STRUCT_FILE;

pr_debug("Moving to TARG_CONN_STATE_XPT_UP.\n");
conn->conn_state = TARG_CONN_STATE_XPT_UP;

Expand Down Expand Up @@ -1205,13 +1156,8 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
iscsi_release_param_list(conn->param_list);
conn->param_list = NULL;
}
if (conn->sock) {
if (conn->conn_flags & CONNFLAG_SCTP_STRUCT_FILE) {
kfree(conn->sock->file);
conn->sock->file = NULL;
}
if (conn->sock)
sock_release(conn->sock);
}
kfree(conn);

if (tpg) {
Expand Down

0 comments on commit 61b5713

Please sign in to comment.