mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 04:46:45 +07:00
ipvs: Pass ipvs not net into register_app and unregister_app
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Acked-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
a4dd0360c6
commit
19648918fb
@ -517,9 +517,9 @@ struct ip_vs_protocol {
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
struct ip_vs_proto_data *pd);
|
struct ip_vs_proto_data *pd);
|
||||||
|
|
||||||
int (*register_app)(struct net *net, struct ip_vs_app *inc);
|
int (*register_app)(struct netns_ipvs *ipvs, struct ip_vs_app *inc);
|
||||||
|
|
||||||
void (*unregister_app)(struct net *net, struct ip_vs_app *inc);
|
void (*unregister_app)(struct netns_ipvs *ipvs, struct ip_vs_app *inc);
|
||||||
|
|
||||||
int (*app_conn_bind)(struct ip_vs_conn *cp);
|
int (*app_conn_bind)(struct ip_vs_conn *cp);
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ static int
|
|||||||
ip_vs_app_inc_new(struct net *net, struct ip_vs_app *app, __u16 proto,
|
ip_vs_app_inc_new(struct net *net, struct ip_vs_app *app, __u16 proto,
|
||||||
__u16 port)
|
__u16 port)
|
||||||
{
|
{
|
||||||
|
struct netns_ipvs *ipvs = net_ipvs(net);
|
||||||
struct ip_vs_protocol *pp;
|
struct ip_vs_protocol *pp;
|
||||||
struct ip_vs_app *inc;
|
struct ip_vs_app *inc;
|
||||||
int ret;
|
int ret;
|
||||||
@ -107,7 +108,7 @@ ip_vs_app_inc_new(struct net *net, struct ip_vs_app *app, __u16 proto,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = pp->register_app(net, inc);
|
ret = pp->register_app(ipvs, inc);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -129,13 +130,14 @@ ip_vs_app_inc_new(struct net *net, struct ip_vs_app *app, __u16 proto,
|
|||||||
static void
|
static void
|
||||||
ip_vs_app_inc_release(struct net *net, struct ip_vs_app *inc)
|
ip_vs_app_inc_release(struct net *net, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
|
struct netns_ipvs *ipvs = net_ipvs(net);
|
||||||
struct ip_vs_protocol *pp;
|
struct ip_vs_protocol *pp;
|
||||||
|
|
||||||
if (!(pp = ip_vs_proto_get(inc->protocol)))
|
if (!(pp = ip_vs_proto_get(inc->protocol)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (pp->unregister_app)
|
if (pp->unregister_app)
|
||||||
pp->unregister_app(net, inc);
|
pp->unregister_app(ipvs, inc);
|
||||||
|
|
||||||
IP_VS_DBG(9, "%s App %s:%u unregistered\n",
|
IP_VS_DBG(9, "%s App %s:%u unregistered\n",
|
||||||
pp->name, inc->name, ntohs(inc->port));
|
pp->name, inc->name, ntohs(inc->port));
|
||||||
|
@ -487,13 +487,12 @@ static inline __u16 sctp_app_hashkey(__be16 port)
|
|||||||
& SCTP_APP_TAB_MASK;
|
& SCTP_APP_TAB_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sctp_register_app(struct net *net, struct ip_vs_app *inc)
|
static int sctp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
struct ip_vs_app *i;
|
struct ip_vs_app *i;
|
||||||
__u16 hash;
|
__u16 hash;
|
||||||
__be16 port = inc->port;
|
__be16 port = inc->port;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct netns_ipvs *ipvs = net_ipvs(net);
|
|
||||||
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_SCTP);
|
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_SCTP);
|
||||||
|
|
||||||
hash = sctp_app_hashkey(port);
|
hash = sctp_app_hashkey(port);
|
||||||
@ -511,9 +510,9 @@ static int sctp_register_app(struct net *net, struct ip_vs_app *inc)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sctp_unregister_app(struct net *net, struct ip_vs_app *inc)
|
static void sctp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(net_ipvs(net), IPPROTO_SCTP);
|
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_SCTP);
|
||||||
|
|
||||||
atomic_dec(&pd->appcnt);
|
atomic_dec(&pd->appcnt);
|
||||||
list_del_rcu(&inc->p_list);
|
list_del_rcu(&inc->p_list);
|
||||||
|
@ -595,13 +595,12 @@ static inline __u16 tcp_app_hashkey(__be16 port)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int tcp_register_app(struct net *net, struct ip_vs_app *inc)
|
static int tcp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
struct ip_vs_app *i;
|
struct ip_vs_app *i;
|
||||||
__u16 hash;
|
__u16 hash;
|
||||||
__be16 port = inc->port;
|
__be16 port = inc->port;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct netns_ipvs *ipvs = net_ipvs(net);
|
|
||||||
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_TCP);
|
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_TCP);
|
||||||
|
|
||||||
hash = tcp_app_hashkey(port);
|
hash = tcp_app_hashkey(port);
|
||||||
@ -621,9 +620,9 @@ static int tcp_register_app(struct net *net, struct ip_vs_app *inc)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
tcp_unregister_app(struct net *net, struct ip_vs_app *inc)
|
tcp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(net_ipvs(net), IPPROTO_TCP);
|
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_TCP);
|
||||||
|
|
||||||
atomic_dec(&pd->appcnt);
|
atomic_dec(&pd->appcnt);
|
||||||
list_del_rcu(&inc->p_list);
|
list_del_rcu(&inc->p_list);
|
||||||
|
@ -365,13 +365,12 @@ static inline __u16 udp_app_hashkey(__be16 port)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int udp_register_app(struct net *net, struct ip_vs_app *inc)
|
static int udp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
struct ip_vs_app *i;
|
struct ip_vs_app *i;
|
||||||
__u16 hash;
|
__u16 hash;
|
||||||
__be16 port = inc->port;
|
__be16 port = inc->port;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct netns_ipvs *ipvs = net_ipvs(net);
|
|
||||||
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_UDP);
|
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_UDP);
|
||||||
|
|
||||||
hash = udp_app_hashkey(port);
|
hash = udp_app_hashkey(port);
|
||||||
@ -391,9 +390,9 @@ static int udp_register_app(struct net *net, struct ip_vs_app *inc)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
udp_unregister_app(struct net *net, struct ip_vs_app *inc)
|
udp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
|
||||||
{
|
{
|
||||||
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(net_ipvs(net), IPPROTO_UDP);
|
struct ip_vs_proto_data *pd = ip_vs_proto_data_get(ipvs, IPPROTO_UDP);
|
||||||
|
|
||||||
atomic_dec(&pd->appcnt);
|
atomic_dec(&pd->appcnt);
|
||||||
list_del_rcu(&inc->p_list);
|
list_del_rcu(&inc->p_list);
|
||||||
|
Loading…
Reference in New Issue
Block a user