]>
Commit | Line | Data |
---|---|---|
9b50f08f GKH |
1 | From 5159d763f60af693a3fcec45dce2021f66e528a4 Mon Sep 17 00:00:00 2001 |
2 | From: Nicholas Bellinger <nab@linux-iscsi.org> | |
3 | Date: Mon, 3 Feb 2014 12:53:51 -0800 | |
4 | Subject: iscsi/iser-target: Use list_del_init for ->i_conn_node | |
5 | ||
6 | From: Nicholas Bellinger <nab@linux-iscsi.org> | |
7 | ||
8 | commit 5159d763f60af693a3fcec45dce2021f66e528a4 upstream. | |
9 | ||
10 | There are a handful of uses of list_empty() for cmd->i_conn_node | |
11 | within iser-target code that expect to return false once a cmd | |
12 | has been removed from the per connect list. | |
13 | ||
14 | This patch changes all uses of list_del -> list_del_init in order | |
15 | to ensure that list_empty() returns false as expected. | |
16 | ||
17 | Acked-by: Sagi Grimberg <sagig@mellanox.com> | |
18 | Cc: Or Gerlitz <ogerlitz@mellanox.com> | |
19 | Cc: <stable@vger.kernel.org> #3.10+ | |
20 | Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> | |
21 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
22 | ||
23 | ||
24 | --- | |
25 | drivers/infiniband/ulp/isert/ib_isert.c | 6 +++--- | |
26 | drivers/target/iscsi/iscsi_target.c | 4 ++-- | |
27 | drivers/target/iscsi/iscsi_target_erl2.c | 16 ++++++++-------- | |
28 | 3 files changed, 13 insertions(+), 13 deletions(-) | |
29 | ||
30 | --- a/drivers/infiniband/ulp/isert/ib_isert.c | |
31 | +++ b/drivers/infiniband/ulp/isert/ib_isert.c | |
32 | @@ -1213,7 +1213,7 @@ isert_put_cmd(struct isert_cmd *isert_cm | |
33 | case ISCSI_OP_SCSI_CMD: | |
34 | spin_lock_bh(&conn->cmd_lock); | |
35 | if (!list_empty(&cmd->i_conn_node)) | |
36 | - list_del(&cmd->i_conn_node); | |
37 | + list_del_init(&cmd->i_conn_node); | |
38 | spin_unlock_bh(&conn->cmd_lock); | |
39 | ||
40 | if (cmd->data_direction == DMA_TO_DEVICE) | |
41 | @@ -1225,7 +1225,7 @@ isert_put_cmd(struct isert_cmd *isert_cm | |
42 | case ISCSI_OP_SCSI_TMFUNC: | |
43 | spin_lock_bh(&conn->cmd_lock); | |
44 | if (!list_empty(&cmd->i_conn_node)) | |
45 | - list_del(&cmd->i_conn_node); | |
46 | + list_del_init(&cmd->i_conn_node); | |
47 | spin_unlock_bh(&conn->cmd_lock); | |
48 | ||
49 | transport_generic_free_cmd(&cmd->se_cmd, 0); | |
50 | @@ -1234,7 +1234,7 @@ isert_put_cmd(struct isert_cmd *isert_cm | |
51 | case ISCSI_OP_NOOP_OUT: | |
52 | spin_lock_bh(&conn->cmd_lock); | |
53 | if (!list_empty(&cmd->i_conn_node)) | |
54 | - list_del(&cmd->i_conn_node); | |
55 | + list_del_init(&cmd->i_conn_node); | |
56 | spin_unlock_bh(&conn->cmd_lock); | |
57 | ||
58 | /* | |
59 | --- a/drivers/target/iscsi/iscsi_target.c | |
60 | +++ b/drivers/target/iscsi/iscsi_target.c | |
61 | @@ -3653,7 +3653,7 @@ iscsit_immediate_queue(struct iscsi_conn | |
62 | break; | |
63 | case ISTATE_REMOVE: | |
64 | spin_lock_bh(&conn->cmd_lock); | |
65 | - list_del(&cmd->i_conn_node); | |
66 | + list_del_init(&cmd->i_conn_node); | |
67 | spin_unlock_bh(&conn->cmd_lock); | |
68 | ||
69 | iscsit_free_cmd(cmd, false); | |
70 | @@ -4099,7 +4099,7 @@ static void iscsit_release_commands_from | |
71 | spin_lock_bh(&conn->cmd_lock); | |
72 | list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) { | |
73 | ||
74 | - list_del(&cmd->i_conn_node); | |
75 | + list_del_init(&cmd->i_conn_node); | |
76 | spin_unlock_bh(&conn->cmd_lock); | |
77 | ||
78 | iscsit_increment_maxcmdsn(cmd, sess); | |
79 | --- a/drivers/target/iscsi/iscsi_target_erl2.c | |
80 | +++ b/drivers/target/iscsi/iscsi_target_erl2.c | |
81 | @@ -140,7 +140,7 @@ void iscsit_free_connection_recovery_ent | |
82 | list_for_each_entry_safe(cmd, cmd_tmp, | |
83 | &cr->conn_recovery_cmd_list, i_conn_node) { | |
84 | ||
85 | - list_del(&cmd->i_conn_node); | |
86 | + list_del_init(&cmd->i_conn_node); | |
87 | cmd->conn = NULL; | |
88 | spin_unlock(&cr->conn_recovery_cmd_lock); | |
89 | iscsit_free_cmd(cmd, true); | |
90 | @@ -162,7 +162,7 @@ void iscsit_free_connection_recovery_ent | |
91 | list_for_each_entry_safe(cmd, cmd_tmp, | |
92 | &cr->conn_recovery_cmd_list, i_conn_node) { | |
93 | ||
94 | - list_del(&cmd->i_conn_node); | |
95 | + list_del_init(&cmd->i_conn_node); | |
96 | cmd->conn = NULL; | |
97 | spin_unlock(&cr->conn_recovery_cmd_lock); | |
98 | iscsit_free_cmd(cmd, true); | |
99 | @@ -218,7 +218,7 @@ int iscsit_remove_cmd_from_connection_re | |
100 | } | |
101 | cr = cmd->cr; | |
102 | ||
103 | - list_del(&cmd->i_conn_node); | |
104 | + list_del_init(&cmd->i_conn_node); | |
105 | return --cr->cmd_count; | |
106 | } | |
107 | ||
108 | @@ -299,7 +299,7 @@ int iscsit_discard_unacknowledged_ooo_cm | |
109 | if (!(cmd->cmd_flags & ICF_OOO_CMDSN)) | |
110 | continue; | |
111 | ||
112 | - list_del(&cmd->i_conn_node); | |
113 | + list_del_init(&cmd->i_conn_node); | |
114 | ||
115 | spin_unlock_bh(&conn->cmd_lock); | |
116 | iscsit_free_cmd(cmd, true); | |
117 | @@ -337,7 +337,7 @@ int iscsit_prepare_cmds_for_realligance( | |
118 | /* | |
119 | * Only perform connection recovery on ISCSI_OP_SCSI_CMD or | |
120 | * ISCSI_OP_NOOP_OUT opcodes. For all other opcodes call | |
121 | - * list_del(&cmd->i_conn_node); to release the command to the | |
122 | + * list_del_init(&cmd->i_conn_node); to release the command to the | |
123 | * session pool and remove it from the connection's list. | |
124 | * | |
125 | * Also stop the DataOUT timer, which will be restarted after | |
126 | @@ -353,7 +353,7 @@ int iscsit_prepare_cmds_for_realligance( | |
127 | " CID: %hu\n", cmd->iscsi_opcode, | |
128 | cmd->init_task_tag, cmd->cmd_sn, conn->cid); | |
129 | ||
130 | - list_del(&cmd->i_conn_node); | |
131 | + list_del_init(&cmd->i_conn_node); | |
132 | spin_unlock_bh(&conn->cmd_lock); | |
133 | iscsit_free_cmd(cmd, true); | |
134 | spin_lock_bh(&conn->cmd_lock); | |
135 | @@ -373,7 +373,7 @@ int iscsit_prepare_cmds_for_realligance( | |
136 | */ | |
137 | if (!(cmd->cmd_flags & ICF_OOO_CMDSN) && !cmd->immediate_cmd && | |
138 | iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) { | |
139 | - list_del(&cmd->i_conn_node); | |
140 | + list_del_init(&cmd->i_conn_node); | |
141 | spin_unlock_bh(&conn->cmd_lock); | |
142 | iscsit_free_cmd(cmd, true); | |
143 | spin_lock_bh(&conn->cmd_lock); | |
144 | @@ -395,7 +395,7 @@ int iscsit_prepare_cmds_for_realligance( | |
145 | ||
146 | cmd->sess = conn->sess; | |
147 | ||
148 | - list_del(&cmd->i_conn_node); | |
149 | + list_del_init(&cmd->i_conn_node); | |
150 | spin_unlock_bh(&conn->cmd_lock); | |
151 | ||
152 | iscsit_free_all_datain_reqs(cmd); |