aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/ipvs/ip_vs_proto.c
diff options
context:
space:
mode:
authorHans Schillstrom <hans.schillstrom@ericsson.com>2011-01-03 08:44:51 -0500
committerSimon Horman <horms@verge.net.au>2011-01-12 20:30:27 -0500
commit9330419d9aa4f97df412ac9be9fc0388c67dd315 (patch)
tree3fdd9103f299fcd2dfafcf0f51d1b5c4430987c2 /net/netfilter/ipvs/ip_vs_proto.c
parent88fe2d372793a71ae4f6319a16f537d56a83906c (diff)
IPVS: netns, use ip_vs_proto_data as param.
ip_vs_protocol *pp is replaced by ip_vs_proto_data *pd in function call in ip_vs_protocol struct i.e. :, - timeout_change() - state_transition() ip_vs_protocol_timeout_change() got ipvs as param, due to above and a upcoming patch - defence work Most of this changes are triggered by Julians comment: "tcp_timeout_change should work with the new struct ip_vs_proto_data so that tcp_state_table will go to pd->state_table and set_tcp_state will get pd instead of pp" *v3 Mostly comments from Julian The pp -> pd conversion should start from functions like ip_vs_out() that use pp = ip_vs_proto_get(iph.protocol), now they should use ip_vs_proto_data_get(net, iph.protocol). conn_in_get() and conn_out_get() unused param *pp, removed. *v4 ip_vs_protocol_timeout_change() walk the proto_data path. Signed-off-by: Hans Schillstrom <hans.schillstrom@ericsson.com> Acked-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net/netfilter/ipvs/ip_vs_proto.c')
-rw-r--r--net/netfilter/ipvs/ip_vs_proto.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/net/netfilter/ipvs/ip_vs_proto.c b/net/netfilter/ipvs/ip_vs_proto.c
index 9f609d4d5d5..6ac986cdcff 100644
--- a/net/netfilter/ipvs/ip_vs_proto.c
+++ b/net/netfilter/ipvs/ip_vs_proto.c
@@ -152,9 +152,8 @@ EXPORT_SYMBOL(ip_vs_proto_get);
152 * get ip_vs_protocol object data by netns and proto 152 * get ip_vs_protocol object data by netns and proto
153 */ 153 */
154struct ip_vs_proto_data * 154struct ip_vs_proto_data *
155ip_vs_proto_data_get(struct net *net, unsigned short proto) 155__ipvs_proto_data_get(struct netns_ipvs *ipvs, unsigned short proto)
156{ 156{
157 struct netns_ipvs *ipvs = net_ipvs(net);
158 struct ip_vs_proto_data *pd; 157 struct ip_vs_proto_data *pd;
159 unsigned hash = IP_VS_PROTO_HASH(proto); 158 unsigned hash = IP_VS_PROTO_HASH(proto);
160 159
@@ -165,20 +164,28 @@ ip_vs_proto_data_get(struct net *net, unsigned short proto)
165 164
166 return NULL; 165 return NULL;
167} 166}
167
168struct ip_vs_proto_data *
169ip_vs_proto_data_get(struct net *net, unsigned short proto)
170{
171 struct netns_ipvs *ipvs = net_ipvs(net);
172
173 return __ipvs_proto_data_get(ipvs, proto);
174}
168EXPORT_SYMBOL(ip_vs_proto_data_get); 175EXPORT_SYMBOL(ip_vs_proto_data_get);
169 176
170/* 177/*
171 * Propagate event for state change to all protocols 178 * Propagate event for state change to all protocols
172 */ 179 */
173void ip_vs_protocol_timeout_change(int flags) 180void ip_vs_protocol_timeout_change(struct netns_ipvs *ipvs, int flags)
174{ 181{
175 struct ip_vs_protocol *pp; 182 struct ip_vs_proto_data *pd;
176 int i; 183 int i;
177 184
178 for (i = 0; i < IP_VS_PROTO_TAB_SIZE; i++) { 185 for (i = 0; i < IP_VS_PROTO_TAB_SIZE; i++) {
179 for (pp = ip_vs_proto_table[i]; pp; pp = pp->next) { 186 for (pd = ipvs->proto_data_table[i]; pd; pd = pd->next) {
180 if (pp->timeout_change) 187 if (pd->pp->timeout_change)
181 pp->timeout_change(pp, flags); 188 pd->pp->timeout_change(pd, flags);
182 } 189 }
183 } 190 }
184} 191}