Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f8128a5 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Simon Horman
Browse files

ipvs: Pass ipvs not net to register_ip_vs_app and unregister_ip_vs_app



Also move the tests for net_ipvs being NULL into __ip_vs_ftp_init
and __ip_vs_ftp_exit.  The only places where they possibly make
sense.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: default avatarJulian Anastasov <ja@ssi.bg>
Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
parent 3250dc9c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1341,8 +1341,8 @@ void ip_vs_service_net_cleanup(struct netns_ipvs *ipvs);
 * (from ip_vs_app.c)
 */
#define IP_VS_APP_MAX_PORTS  8
struct ip_vs_app *register_ip_vs_app(struct net *net, struct ip_vs_app *app);
void unregister_ip_vs_app(struct net *net, struct ip_vs_app *app);
struct ip_vs_app *register_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app);
void unregister_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app);
int ip_vs_bind_app(struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
void ip_vs_unbind_app(struct ip_vs_conn *cp);
int register_ip_vs_app_inc(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 proto,
+6 −11
Original line number Diff line number Diff line
@@ -192,15 +192,11 @@ register_ip_vs_app_inc(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 pro


/* Register application for netns */
struct ip_vs_app *register_ip_vs_app(struct net *net, struct ip_vs_app *app)
struct ip_vs_app *register_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app)
{
	struct netns_ipvs *ipvs = net_ipvs(net);
	struct ip_vs_app *a;
	int err = 0;

	if (!ipvs)
		return ERR_PTR(-ENOENT);

	mutex_lock(&__ip_vs_app_mutex);

	list_for_each_entry(a, &ipvs->app_list, a_list) {
@@ -231,13 +227,10 @@ struct ip_vs_app *register_ip_vs_app(struct net *net, struct ip_vs_app *app)
 *	We are sure there are no app incarnations attached to services
 *	Caller should use synchronize_rcu() or rcu_barrier()
 */
void unregister_ip_vs_app(struct net *net, struct ip_vs_app *app)
void unregister_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app)
{
	struct netns_ipvs *ipvs = net_ipvs(net);
	struct ip_vs_app *a, *anxt, *inc, *nxt;

	if (!ipvs)
		return;
	struct net *net = ipvs->net;

	mutex_lock(&__ip_vs_app_mutex);

@@ -623,6 +616,8 @@ int __net_init ip_vs_app_net_init(struct net *net)

void __net_exit ip_vs_app_net_cleanup(struct net *net)
{
	unregister_ip_vs_app(net, NULL /* all */);
	struct netns_ipvs *ipvs = net_ipvs(net);

	unregister_ip_vs_app(ipvs, NULL /* all */);
	remove_proc_entry("ip_vs_app", net->proc_net);
}
+8 −3
Original line number Diff line number Diff line
@@ -447,7 +447,7 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
	if (!ipvs)
		return -ENOENT;

	app = register_ip_vs_app(net, &ip_vs_ftp);
	app = register_ip_vs_app(ipvs, &ip_vs_ftp);
	if (IS_ERR(app))
		return PTR_ERR(app);

@@ -463,7 +463,7 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
	return 0;

err_unreg:
	unregister_ip_vs_app(net, &ip_vs_ftp);
	unregister_ip_vs_app(ipvs, &ip_vs_ftp);
	return ret;
}
/*
@@ -471,7 +471,12 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
 */
static void __ip_vs_ftp_exit(struct net *net)
{
	unregister_ip_vs_app(net, &ip_vs_ftp);
	struct netns_ipvs *ipvs = net_ipvs(net);

	if (!ipvs)
		return;

	unregister_ip_vs_app(ipvs, &ip_vs_ftp);
}

static struct pernet_operations ip_vs_ftp_ops = {