Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
619c1517
Commit
619c1517
authored
Jun 16, 2011
by
Patrick McHardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs-next-2.6
parents
1f2d9c9d
6c8f7949
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
100 additions
and
133 deletions
+100
-133
include/net/ip_vs.h
include/net/ip_vs.h
+13
-21
net/netfilter/ipvs/ip_vs_app.c
net/netfilter/ipvs/ip_vs_app.c
+2
-12
net/netfilter/ipvs/ip_vs_conn.c
net/netfilter/ipvs/ip_vs_conn.c
+2
-2
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/ipvs/ip_vs_core.c
+25
-46
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/ipvs/ip_vs_ctl.c
+14
-14
net/netfilter/ipvs/ip_vs_est.c
net/netfilter/ipvs/ip_vs_est.c
+2
-11
net/netfilter/ipvs/ip_vs_ftp.c
net/netfilter/ipvs/ip_vs_ftp.c
+38
-14
net/netfilter/ipvs/ip_vs_proto.c
net/netfilter/ipvs/ip_vs_proto.c
+2
-2
net/netfilter/ipvs/ip_vs_sync.c
net/netfilter/ipvs/ip_vs_sync.c
+2
-11
No files found.
include/net/ip_vs.h
View file @
619c1517
...
...
@@ -836,8 +836,6 @@ struct netns_ipvs {
int
num_services
;
/* no of virtual services */
rwlock_t
rs_lock
;
/* real services table */
/* semaphore for IPVS sockopts. And, [gs]etsockopt may sleep. */
struct
lock_class_key
ctl_key
;
/* ctl_mutex debuging */
/* Trash for destinations */
struct
list_head
dest_trash
;
/* Service counters */
...
...
@@ -1089,19 +1087,19 @@ ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp)
/*
* IPVS netns init & cleanup functions
*/
extern
int
__ip_vs_estimator
_init
(
struct
net
*
net
);
extern
int
__ip_vs_control
_init
(
struct
net
*
net
);
extern
int
__ip_vs_protocol
_init
(
struct
net
*
net
);
extern
int
__ip_vs_app
_init
(
struct
net
*
net
);
extern
int
__ip_vs_conn
_init
(
struct
net
*
net
);
extern
int
__ip_vs_sync
_init
(
struct
net
*
net
);
extern
void
__ip_vs_conn
_cleanup
(
struct
net
*
net
);
extern
void
__ip_vs_app
_cleanup
(
struct
net
*
net
);
extern
void
__ip_vs_protocol
_cleanup
(
struct
net
*
net
);
extern
void
__ip_vs_control
_cleanup
(
struct
net
*
net
);
extern
void
__ip_vs_estimator
_cleanup
(
struct
net
*
net
);
extern
void
__ip_vs_sync
_cleanup
(
struct
net
*
net
);
extern
void
__ip_vs_service
_cleanup
(
struct
net
*
net
);
extern
int
ip_vs_estimator_net
_init
(
struct
net
*
net
);
extern
int
ip_vs_control_net
_init
(
struct
net
*
net
);
extern
int
ip_vs_protocol_net
_init
(
struct
net
*
net
);
extern
int
ip_vs_app_net
_init
(
struct
net
*
net
);
extern
int
ip_vs_conn_net
_init
(
struct
net
*
net
);
extern
int
ip_vs_sync_net
_init
(
struct
net
*
net
);
extern
void
ip_vs_conn_net
_cleanup
(
struct
net
*
net
);
extern
void
ip_vs_app_net
_cleanup
(
struct
net
*
net
);
extern
void
ip_vs_protocol_net
_cleanup
(
struct
net
*
net
);
extern
void
ip_vs_control_net
_cleanup
(
struct
net
*
net
);
extern
void
ip_vs_estimator_net
_cleanup
(
struct
net
*
net
);
extern
void
ip_vs_sync_net
_cleanup
(
struct
net
*
net
);
extern
void
ip_vs_service_net
_cleanup
(
struct
net
*
net
);
/*
* IPVS application functions
...
...
@@ -1119,8 +1117,6 @@ extern void ip_vs_app_inc_put(struct ip_vs_app *inc);
extern
int
ip_vs_app_pkt_out
(
struct
ip_vs_conn
*
,
struct
sk_buff
*
skb
);
extern
int
ip_vs_app_pkt_in
(
struct
ip_vs_conn
*
,
struct
sk_buff
*
skb
);
extern
int
ip_vs_app_init
(
void
);
extern
void
ip_vs_app_cleanup
(
void
);
void
ip_vs_bind_pe
(
struct
ip_vs_service
*
svc
,
struct
ip_vs_pe
*
pe
);
void
ip_vs_unbind_pe
(
struct
ip_vs_service
*
svc
);
...
...
@@ -1223,15 +1219,11 @@ extern int start_sync_thread(struct net *net, int state, char *mcast_ifn,
__u8
syncid
);
extern
int
stop_sync_thread
(
struct
net
*
net
,
int
state
);
extern
void
ip_vs_sync_conn
(
struct
net
*
net
,
struct
ip_vs_conn
*
cp
);
extern
int
ip_vs_sync_init
(
void
);
extern
void
ip_vs_sync_cleanup
(
void
);
/*
* IPVS rate estimator prototypes (from ip_vs_est.c)
*/
extern
int
ip_vs_estimator_init
(
void
);
extern
void
ip_vs_estimator_cleanup
(
void
);
extern
void
ip_vs_start_estimator
(
struct
net
*
net
,
struct
ip_vs_stats
*
stats
);
extern
void
ip_vs_stop_estimator
(
struct
net
*
net
,
struct
ip_vs_stats
*
stats
);
extern
void
ip_vs_zero_estimator
(
struct
ip_vs_stats
*
stats
);
...
...
net/netfilter/ipvs/ip_vs_app.c
View file @
619c1517
...
...
@@ -576,7 +576,7 @@ static const struct file_operations ip_vs_app_fops = {
};
#endif
int
__net_init
__ip_vs_app
_init
(
struct
net
*
net
)
int
__net_init
ip_vs_app_net
_init
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -585,17 +585,7 @@ int __net_init __ip_vs_app_init(struct net *net)
return
0
;
}
void
__net_exit
__ip_vs_app
_cleanup
(
struct
net
*
net
)
void
__net_exit
ip_vs_app_net
_cleanup
(
struct
net
*
net
)
{
proc_net_remove
(
net
,
"ip_vs_app"
);
}
int
__init
ip_vs_app_init
(
void
)
{
return
0
;
}
void
ip_vs_app_cleanup
(
void
)
{
}
net/netfilter/ipvs/ip_vs_conn.c
View file @
619c1517
...
...
@@ -1247,7 +1247,7 @@ static void ip_vs_conn_flush(struct net *net)
/*
* per netns init and exit
*/
int
__net_init
__ip_vs_conn
_init
(
struct
net
*
net
)
int
__net_init
ip_vs_conn_net
_init
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -1258,7 +1258,7 @@ int __net_init __ip_vs_conn_init(struct net *net)
return
0
;
}
void
__net_exit
__ip_vs_conn
_cleanup
(
struct
net
*
net
)
void
__net_exit
ip_vs_conn_net
_cleanup
(
struct
net
*
net
)
{
/* flush all the connection entries first */
ip_vs_conn_flush
(
net
);
...
...
net/netfilter/ipvs/ip_vs_core.c
View file @
619c1517
...
...
@@ -1384,7 +1384,7 @@ ip_vs_in_icmp(struct sk_buff *skb, int *related, unsigned int hooknum)
offset
+=
2
*
sizeof
(
__u16
);
verdict
=
ip_vs_icmp_xmit
(
skb
,
cp
,
pp
,
offset
,
hooknum
);
out:
out:
__ip_vs_conn_put
(
cp
);
return
verdict
;
...
...
@@ -1891,22 +1891,22 @@ static int __net_init __ip_vs_init(struct net *net)
atomic_inc
(
&
ipvs_netns_cnt
);
net
->
ipvs
=
ipvs
;
if
(
__ip_vs_estimator
_init
(
net
)
<
0
)
if
(
ip_vs_estimator_net
_init
(
net
)
<
0
)
goto
estimator_fail
;
if
(
__ip_vs_control
_init
(
net
)
<
0
)
if
(
ip_vs_control_net
_init
(
net
)
<
0
)
goto
control_fail
;
if
(
__ip_vs_protocol
_init
(
net
)
<
0
)
if
(
ip_vs_protocol_net
_init
(
net
)
<
0
)
goto
protocol_fail
;
if
(
__ip_vs_app
_init
(
net
)
<
0
)
if
(
ip_vs_app_net
_init
(
net
)
<
0
)
goto
app_fail
;
if
(
__ip_vs_conn
_init
(
net
)
<
0
)
if
(
ip_vs_conn_net
_init
(
net
)
<
0
)
goto
conn_fail
;
if
(
__ip_vs_sync
_init
(
net
)
<
0
)
if
(
ip_vs_sync_net
_init
(
net
)
<
0
)
goto
sync_fail
;
printk
(
KERN_INFO
"IPVS: Creating netns size=%zu id=%d
\n
"
,
...
...
@@ -1917,27 +1917,27 @@ static int __net_init __ip_vs_init(struct net *net)
*/
sync_fail:
__ip_vs_conn
_cleanup
(
net
);
ip_vs_conn_net
_cleanup
(
net
);
conn_fail:
__ip_vs_app
_cleanup
(
net
);
ip_vs_app_net
_cleanup
(
net
);
app_fail:
__ip_vs_protocol
_cleanup
(
net
);
ip_vs_protocol_net
_cleanup
(
net
);
protocol_fail:
__ip_vs_control
_cleanup
(
net
);
ip_vs_control_net
_cleanup
(
net
);
control_fail:
__ip_vs_estimator
_cleanup
(
net
);
ip_vs_estimator_net
_cleanup
(
net
);
estimator_fail:
return
-
ENOMEM
;
}
static
void
__net_exit
__ip_vs_cleanup
(
struct
net
*
net
)
{
__ip_vs_service
_cleanup
(
net
);
/* ip_vs_flush() with locks */
__ip_vs_conn
_cleanup
(
net
);
__ip_vs_app
_cleanup
(
net
);
__ip_vs_protocol
_cleanup
(
net
);
__ip_vs_control
_cleanup
(
net
);
__ip_vs_estimator
_cleanup
(
net
);
ip_vs_service_net
_cleanup
(
net
);
/* ip_vs_flush() with locks */
ip_vs_conn_net
_cleanup
(
net
);
ip_vs_app_net
_cleanup
(
net
);
ip_vs_protocol_net
_cleanup
(
net
);
ip_vs_control_net
_cleanup
(
net
);
ip_vs_estimator_net
_cleanup
(
net
);
IP_VS_DBG
(
2
,
"ipvs netns %d released
\n
"
,
net_ipvs
(
net
)
->
gen
);
}
...
...
@@ -1945,7 +1945,7 @@ static void __net_exit __ip_vs_dev_cleanup(struct net *net)
{
EnterFunction
(
2
);
net_ipvs
(
net
)
->
enable
=
0
;
/* Disable packet reception */
__ip_vs_sync
_cleanup
(
net
);
ip_vs_sync_net
_cleanup
(
net
);
LeaveFunction
(
2
);
}
...
...
@@ -1967,36 +1967,23 @@ static int __init ip_vs_init(void)
{
int
ret
;
ip_vs_estimator_init
();
ret
=
ip_vs_control_init
();
if
(
ret
<
0
)
{
pr_err
(
"can't setup control.
\n
"
);
goto
cleanup_estimator
;
goto
exit
;
}
ip_vs_protocol_init
();
ret
=
ip_vs_app_init
();
if
(
ret
<
0
)
{
pr_err
(
"can't setup application helper.
\n
"
);
goto
cleanup_protocol
;
}
ret
=
ip_vs_conn_init
();
if
(
ret
<
0
)
{
pr_err
(
"can't setup connection table.
\n
"
);
goto
cleanup_app
;
}
ret
=
ip_vs_sync_init
();
if
(
ret
<
0
)
{
pr_err
(
"can't setup sync data.
\n
"
);
goto
cleanup_conn
;
goto
cleanup_protocol
;
}
ret
=
register_pernet_subsys
(
&
ipvs_core_ops
);
/* Alloc ip_vs struct */
if
(
ret
<
0
)
goto
cleanup_
sync
;
goto
cleanup_
conn
;
ret
=
register_pernet_device
(
&
ipvs_core_dev_ops
);
if
(
ret
<
0
)
...
...
@@ -2016,17 +2003,12 @@ static int __init ip_vs_init(void)
unregister_pernet_device
(
&
ipvs_core_dev_ops
);
cleanup_sub:
unregister_pernet_subsys
(
&
ipvs_core_ops
);
cleanup_sync:
ip_vs_sync_cleanup
();
cleanup_conn:
cleanup_conn:
ip_vs_conn_cleanup
();
cleanup_app:
ip_vs_app_cleanup
();
cleanup_protocol:
cleanup_protocol:
ip_vs_protocol_cleanup
();
ip_vs_control_cleanup
();
cleanup_estimator:
ip_vs_estimator_cleanup
();
exit:
return
ret
;
}
...
...
@@ -2035,12 +2017,9 @@ static void __exit ip_vs_cleanup(void)
nf_unregister_hooks
(
ip_vs_ops
,
ARRAY_SIZE
(
ip_vs_ops
));
unregister_pernet_device
(
&
ipvs_core_dev_ops
);
unregister_pernet_subsys
(
&
ipvs_core_ops
);
/* free ip_vs struct */
ip_vs_sync_cleanup
();
ip_vs_conn_cleanup
();
ip_vs_app_cleanup
();
ip_vs_protocol_cleanup
();
ip_vs_control_cleanup
();
ip_vs_estimator_cleanup
();
pr_info
(
"ipvs unloaded.
\n
"
);
}
...
...
net/netfilter/ipvs/ip_vs_ctl.c
View file @
619c1517
...
...
@@ -1334,9 +1334,9 @@ ip_vs_edit_service(struct ip_vs_service *svc, struct ip_vs_service_user_kern *u)
ip_vs_bind_pe
(
svc
,
pe
);
}
out_unlock:
out_unlock:
write_unlock_bh
(
&
__ip_vs_svc_lock
);
out:
out:
ip_vs_scheduler_put
(
old_sched
);
ip_vs_pe_put
(
old_pe
);
return
ret
;
...
...
@@ -1483,7 +1483,7 @@ static int ip_vs_flush(struct net *net)
* Delete service by {netns} in the service table.
* Called by __ip_vs_cleanup()
*/
void
__ip_vs_service
_cleanup
(
struct
net
*
net
)
void
ip_vs_service_net
_cleanup
(
struct
net
*
net
)
{
EnterFunction
(
2
);
/* Check for "full" addressed entries */
...
...
@@ -1662,7 +1662,7 @@ proc_do_sync_mode(ctl_table *table, int write,
/*
* IPVS sysctl table (under the /proc/sys/net/ipv4/vs/)
* Do not change order or insert new entries without
* align with netns init in
__ip_vs_control
_init()
* align with netns init in
ip_vs_control_net
_init()
*/
static
struct
ctl_table
vs_vars
[]
=
{
...
...
@@ -2469,7 +2469,7 @@ __ip_vs_get_service_entries(struct net *net,
count
++
;
}
}
out:
out:
return
ret
;
}
...
...
@@ -2707,7 +2707,7 @@ do_ip_vs_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
ret
=
-
EINVAL
;
}
out:
out:
mutex_unlock
(
&
__ip_vs_mutex
);
return
ret
;
}
...
...
@@ -3595,7 +3595,7 @@ static void ip_vs_genl_unregister(void)
* per netns intit/exit func.
*/
#ifdef CONFIG_SYSCTL
int
__net_init
__ip_vs_control
_init_sysctl
(
struct
net
*
net
)
int
__net_init
ip_vs_control_net
_init_sysctl
(
struct
net
*
net
)
{
int
idx
;
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -3654,7 +3654,7 @@ int __net_init __ip_vs_control_init_sysctl(struct net *net)
return
0
;
}
void
__net_init
__ip_vs_control
_cleanup_sysctl
(
struct
net
*
net
)
void
__net_init
ip_vs_control_net
_cleanup_sysctl
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -3665,8 +3665,8 @@ void __net_init __ip_vs_control_cleanup_sysctl(struct net *net)
#else
int
__net_init
__ip_vs_control
_init_sysctl
(
struct
net
*
net
)
{
return
0
;
}
void
__net_init
__ip_vs_control
_cleanup_sysctl
(
struct
net
*
net
)
{
}
int
__net_init
ip_vs_control_net
_init_sysctl
(
struct
net
*
net
)
{
return
0
;
}
void
__net_init
ip_vs_control_net
_cleanup_sysctl
(
struct
net
*
net
)
{
}
#endif
...
...
@@ -3674,7 +3674,7 @@ static struct notifier_block ip_vs_dst_notifier = {
.
notifier_call
=
ip_vs_dst_event
,
};
int
__net_init
__ip_vs_control
_init
(
struct
net
*
net
)
int
__net_init
ip_vs_control_net
_init
(
struct
net
*
net
)
{
int
idx
;
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -3702,7 +3702,7 @@ int __net_init __ip_vs_control_init(struct net *net)
proc_net_fops_create
(
net
,
"ip_vs_stats_percpu"
,
0
,
&
ip_vs_stats_percpu_fops
);
if
(
__ip_vs_control
_init_sysctl
(
net
))
if
(
ip_vs_control_net
_init_sysctl
(
net
))
goto
err
;
return
0
;
...
...
@@ -3712,13 +3712,13 @@ int __net_init __ip_vs_control_init(struct net *net)
return
-
ENOMEM
;
}
void
__net_exit
__ip_vs_control
_cleanup
(
struct
net
*
net
)
void
__net_exit
ip_vs_control_net
_cleanup
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
ip_vs_trash_cleanup
(
net
);
ip_vs_stop_estimator
(
net
,
&
ipvs
->
tot_stats
);
__ip_vs_control
_cleanup_sysctl
(
net
);
ip_vs_control_net
_cleanup_sysctl
(
net
);
proc_net_remove
(
net
,
"ip_vs_stats_percpu"
);
proc_net_remove
(
net
,
"ip_vs_stats"
);
proc_net_remove
(
net
,
"ip_vs"
);
...
...
net/netfilter/ipvs/ip_vs_est.c
View file @
619c1517
...
...
@@ -192,7 +192,7 @@ void ip_vs_read_estimator(struct ip_vs_stats_user *dst,
dst
->
outbps
=
(
e
->
outbps
+
0xF
)
>>
5
;
}
int
__net_init
__ip_vs_estimator
_init
(
struct
net
*
net
)
int
__net_init
ip_vs_estimator_net
_init
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -203,16 +203,7 @@ int __net_init __ip_vs_estimator_init(struct net *net)
return
0
;
}
void
__net_exit
__ip_vs_estimator
_cleanup
(
struct
net
*
net
)
void
__net_exit
ip_vs_estimator_net
_cleanup
(
struct
net
*
net
)
{
del_timer_sync
(
&
net_ipvs
(
net
)
->
est_timer
);
}
int
__init
ip_vs_estimator_init
(
void
)
{
return
0
;
}
void
ip_vs_estimator_cleanup
(
void
)
{
}
net/netfilter/ipvs/ip_vs_ftp.c
View file @
619c1517
...
...
@@ -44,8 +44,8 @@
#include <net/ip_vs.h>
#define SERVER_STRING "227
Entering Passive Mode (
"
#define CLIENT_STRING "PORT
"
#define SERVER_STRING "227 "
#define CLIENT_STRING "PORT"
/*
...
...
@@ -79,14 +79,17 @@ ip_vs_ftp_done_conn(struct ip_vs_app *app, struct ip_vs_conn *cp)
/*
* Get <addr,port> from the string "xxx.xxx.xxx.xxx,ppp,ppp", started
* with the "pattern" and terminated with the "term" character.
* with the "pattern", ignoring before "skip" and terminated with
* the "term" character.
* <addr,port> is in network order.
*/
static
int
ip_vs_ftp_get_addrport
(
char
*
data
,
char
*
data_limit
,
const
char
*
pattern
,
size_t
plen
,
char
term
,
const
char
*
pattern
,
size_t
plen
,
char
skip
,
char
term
,
__be32
*
addr
,
__be16
*
port
,
char
**
start
,
char
**
end
)
{
char
*
s
,
c
;
unsigned
char
p
[
6
];
int
i
=
0
;
...
...
@@ -101,19 +104,38 @@ static int ip_vs_ftp_get_addrport(char *data, char *data_limit,
if
(
strnicmp
(
data
,
pattern
,
plen
)
!=
0
)
{
return
0
;
}
*
start
=
data
+
plen
;
s
=
data
+
plen
;
if
(
skip
)
{
int
found
=
0
;
for
(;;
s
++
)
{
if
(
s
==
data_limit
)
return
-
1
;
if
(
!
found
)
{
if
(
*
s
==
skip
)
found
=
1
;
}
else
if
(
*
s
!=
skip
)
{
break
;
}
}
}
for
(
data
=
*
start
;
*
data
!=
term
;
data
++
)
{
for
(
data
=
s
;
;
data
++
)
{
if
(
data
==
data_limit
)
return
-
1
;
if
(
*
data
==
term
)
break
;
}
*
end
=
data
;
memset
(
p
,
0
,
sizeof
(
p
));
for
(
data
=
*
start
;
data
!=
*
end
;
data
++
)
{
if
(
*
data
>=
'0'
&&
*
data
<=
'9'
)
{
p
[
i
]
=
p
[
i
]
*
10
+
*
data
-
'0'
;
}
else
if
(
*
data
==
','
&&
i
<
5
)
{
for
(
data
=
s
;
;
data
++
)
{
c
=
*
data
;
if
(
c
==
term
)
break
;
if
(
c
>=
'0'
&&
c
<=
'9'
)
{
p
[
i
]
=
p
[
i
]
*
10
+
c
-
'0'
;
}
else
if
(
c
==
','
&&
i
<
5
)
{
i
++
;
}
else
{
/* unexpected character */
...
...
@@ -124,8 +146,9 @@ static int ip_vs_ftp_get_addrport(char *data, char *data_limit,
if
(
i
!=
5
)
return
-
1
;
*
addr
=
get_unaligned
((
__be32
*
)
p
);
*
port
=
get_unaligned
((
__be16
*
)(
p
+
4
));
*
start
=
s
;
*
addr
=
get_unaligned
((
__be32
*
)
p
);
*
port
=
get_unaligned
((
__be16
*
)
(
p
+
4
));
return
1
;
}
...
...
@@ -185,7 +208,8 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
if
(
ip_vs_ftp_get_addrport
(
data
,
data_limit
,
SERVER_STRING
,
sizeof
(
SERVER_STRING
)
-
1
,
')'
,
sizeof
(
SERVER_STRING
)
-
1
,
'('
,
')'
,
&
from
.
ip
,
&
port
,
&
start
,
&
end
)
!=
1
)
return
1
;
...
...
@@ -345,7 +369,7 @@ static int ip_vs_ftp_in(struct ip_vs_app *app, struct ip_vs_conn *cp,
*/
if
(
ip_vs_ftp_get_addrport
(
data_start
,
data_limit
,
CLIENT_STRING
,
sizeof
(
CLIENT_STRING
)
-
1
,
'\r'
,
&
to
.
ip
,
&
port
,
'
'
,
'
\r'
,
&
to
.
ip
,
&
port
,
&
start
,
&
end
)
!=
1
)
return
1
;
...
...
net/netfilter/ipvs/ip_vs_proto.c
View file @
619c1517
...
...
@@ -316,7 +316,7 @@ ip_vs_tcpudp_debug_packet(int af, struct ip_vs_protocol *pp,
/*
* per network name-space init
*/
int
__net_init
__ip_vs_protocol
_init
(
struct
net
*
net
)
int
__net_init
ip_vs_protocol_net
_init
(
struct
net
*
net
)
{
#ifdef CONFIG_IP_VS_PROTO_TCP
register_ip_vs_proto_netns
(
net
,
&
ip_vs_protocol_tcp
);
...
...
@@ -336,7 +336,7 @@ int __net_init __ip_vs_protocol_init(struct net *net)
return
0
;
}
void
__net_exit
__ip_vs_protocol
_cleanup
(
struct
net
*
net
)
void
__net_exit
ip_vs_protocol_net
_cleanup
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
struct
ip_vs_proto_data
*
pd
;
...
...
net/netfilter/ipvs/ip_vs_sync.c
View file @
619c1517
...
...
@@ -1663,7 +1663,7 @@ int stop_sync_thread(struct net *net, int state)
/*
* Initialize data struct for each netns
*/
int
__net_init
__ip_vs_sync
_init
(
struct
net
*
net
)
int
__net_init
ip_vs_sync_net
_init
(
struct
net
*
net
)
{
struct
netns_ipvs
*
ipvs
=
net_ipvs
(
net
);
...
...
@@ -1677,7 +1677,7 @@ int __net_init __ip_vs_sync_init(struct net *net)
return
0
;
}
void
__ip_vs_sync
_cleanup
(
struct
net
*
net
)
void
ip_vs_sync_net
_cleanup
(
struct
net
*
net
)
{
int
retc
;
...
...
@@ -1689,12 +1689,3 @@ void __ip_vs_sync_cleanup(struct net *net)
if
(
retc
&&
retc
!=
-
ESRCH
)
pr_err
(
"Failed to stop Backup Daemon
\n
"
);
}
int
__init
ip_vs_sync_init
(
void
)
{
return
0
;
}
void
ip_vs_sync_cleanup
(
void
)
{
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment