Lines Matching defs:app

45 static inline int ip_vs_app_get(struct ip_vs_app *app)
47 return try_module_get(app->module);
51 static inline void ip_vs_app_put(struct ip_vs_app *app)
53 module_put(app->module);
70 * Allocate/initialize app incarnation and register it in proto apps.
73 ip_vs_app_inc_new(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 proto,
86 inc = kmemdup(app, sizeof(*inc), GFP_KERNEL);
91 inc->app = app;
95 if (app->timeouts) {
97 ip_vs_create_timeout_table(app->timeouts,
98 app->timeouts_size);
109 list_add(&inc->a_list, &app->incs_list);
122 * Release app incarnation
145 * Get reference to app inc (only called from softirq)
152 result = ip_vs_app_get(inc->app);
160 * Put the app inc (only called from timer or net softirq)
165 ip_vs_app_put(inc->app);
173 register_ip_vs_app_inc(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 proto,
180 result = ip_vs_app_inc_new(ipvs, app, proto, port);
189 struct ip_vs_app *register_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app)
203 if (!strcmp(app->name, a->name)) {
210 a = kmemdup(app, sizeof(*app), GFP_KERNEL);
229 * We are sure there are no app incarnations attached to services
232 void unregister_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app)
239 if (app && strcmp(app->name, a->name))
271 struct ip_vs_app *inc = cp->app;
281 cp->app = NULL;
361 struct ip_vs_app *app,
390 if (app->pkt_out == NULL)
393 if (!app->pkt_out(app, cp, skb, &diff, ipvsh))
414 struct ip_vs_app *app;
420 if ((app = cp->app) == NULL)
425 return app_tcp_pkt_out(cp, skb, app, ipvsh);
430 if (app->pkt_out == NULL)
433 return app->pkt_out(app, cp, skb, NULL, ipvsh);
438 struct ip_vs_app *app,
467 if (app->pkt_in == NULL)
470 if (!app->pkt_in(app, cp, skb, &diff, ipvsh))
491 struct ip_vs_app *app;
497 if ((app = cp->app) == NULL)
502 return app_tcp_pkt_in(cp, skb, app, ipvsh);
507 if (app->pkt_in == NULL)
510 return app->pkt_in(app, cp, skb, NULL, ipvsh);
521 struct ip_vs_app *app, *inc;
523 list_for_each_entry(app, &ipvs->app_list, a_list) {
524 list_for_each_entry(inc, &app->incs_list, a_list) {
545 struct ip_vs_app *inc, *app;
555 app = inc->app;
557 if ((e = inc->a_list.next) != &app->incs_list)
561 for (e = app->a_list.next; e != &ipvs->app_list; e = e->next) {
562 app = list_entry(e, struct ip_vs_app, a_list);
563 list_for_each_entry(inc, &app->incs_list, a_list) {