|
@@ -321,7 +321,7 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
|
|
|
|
|
|
/* Check if a template already exists */
|
|
/* Check if a template already exists */
|
|
ct = ip_vs_ct_in_get(¶m);
|
|
ct = ip_vs_ct_in_get(¶m);
|
|
- if (!ct || !ip_vs_check_template(ct)) {
|
|
|
|
|
|
+ if (!ct || !ip_vs_check_template(ct, NULL)) {
|
|
struct ip_vs_scheduler *sched;
|
|
struct ip_vs_scheduler *sched;
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -1154,7 +1154,8 @@ struct ip_vs_conn *ip_vs_new_conn_out(struct ip_vs_service *svc,
|
|
vport, ¶m) < 0)
|
|
vport, ¶m) < 0)
|
|
return NULL;
|
|
return NULL;
|
|
ct = ip_vs_ct_in_get(¶m);
|
|
ct = ip_vs_ct_in_get(¶m);
|
|
- if (!ct) {
|
|
|
|
|
|
+ /* check if template exists and points to the same dest */
|
|
|
|
+ if (!ct || !ip_vs_check_template(ct, dest)) {
|
|
ct = ip_vs_conn_new(¶m, dest->af, daddr, dport,
|
|
ct = ip_vs_conn_new(¶m, dest->af, daddr, dport,
|
|
IP_VS_CONN_F_TEMPLATE, dest, 0);
|
|
IP_VS_CONN_F_TEMPLATE, dest, 0);
|
|
if (!ct) {
|
|
if (!ct) {
|