git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
net
/
ipv4
/
ipvs
/
ip_vs_ctl.c
diff --git
a/net/ipv4/ipvs/ip_vs_ctl.c
b/net/ipv4/ipvs/ip_vs_ctl.c
index
5df55ca
..
1021541
100644
(file)
--- a/
net/ipv4/ipvs/ip_vs_ctl.c
+++ b/
net/ipv4/ipvs/ip_vs_ctl.c
@@
-45,24
+45,24
@@
static DECLARE_MUTEX(__ip_vs_mutex);
/* lock for service table */
static DECLARE_MUTEX(__ip_vs_mutex);
/* lock for service table */
-static
rwlock_t __ip_vs_svc_lock = RW_LOCK_UNLOCKED
;
+static
DEFINE_RWLOCK(__ip_vs_svc_lock)
;
/* lock for table with the real services */
/* lock for table with the real services */
-static
rwlock_t __ip_vs_rs_lock = RW_LOCK_UNLOCKED
;
+static
DEFINE_RWLOCK(__ip_vs_rs_lock)
;
/* lock for state and timeout tables */
/* lock for state and timeout tables */
-static
rwlock_t __ip_vs_securetcp_lock = RW_LOCK_UNLOCKED
;
+static
DEFINE_RWLOCK(__ip_vs_securetcp_lock)
;
/* lock for drop entry handling */
/* lock for drop entry handling */
-static
spinlock_t __ip_vs_dropentry_lock = SPIN_LOCK_UNLOCKED
;
+static
DEFINE_SPINLOCK(__ip_vs_dropentry_lock)
;
/* lock for drop packet handling */
/* lock for drop packet handling */
-static
spinlock_t __ip_vs_droppacket_lock = SPIN_LOCK_UNLOCKED
;
+static
DEFINE_SPINLOCK(__ip_vs_droppacket_lock)
;
/* 1/rate drop and drop-entry variables */
int ip_vs_drop_rate = 0;
int ip_vs_drop_counter = 0;
/* 1/rate drop and drop-entry variables */
int ip_vs_drop_rate = 0;
int ip_vs_drop_counter = 0;
-atomic_t ip_vs_dropentry = ATOMIC_INIT(0);
+
static
atomic_t ip_vs_dropentry = ATOMIC_INIT(0);
/* number of virtual services */
static int ip_vs_num_services = 0;
/* number of virtual services */
static int ip_vs_num_services = 0;
@@
-75,6
+75,7
@@
static int sysctl_ip_vs_amemthresh = 1024;
static int sysctl_ip_vs_am_droprate = 10;
int sysctl_ip_vs_cache_bypass = 0;
int sysctl_ip_vs_expire_nodest_conn = 0;
static int sysctl_ip_vs_am_droprate = 10;
int sysctl_ip_vs_cache_bypass = 0;
int sysctl_ip_vs_expire_nodest_conn = 0;
+int sysctl_ip_vs_expire_quiescent_template = 0;
int sysctl_ip_vs_sync_threshold[2] = { 3, 50 };
int sysctl_ip_vs_nat_icmp_send = 0;
int sysctl_ip_vs_sync_threshold[2] = { 3, 50 };
int sysctl_ip_vs_nat_icmp_send = 0;
@@
-746,8
+747,8
@@
ip_vs_new_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest,
atomic_set(&dest->refcnt, 0);
INIT_LIST_HEAD(&dest->d_list);
atomic_set(&dest->refcnt, 0);
INIT_LIST_HEAD(&dest->d_list);
-
dest->dst_lock = SPIN_LOCK_UNLOCKED
;
-
dest->stats.lock = SPIN_LOCK_UNLOCKED
;
+
spin_lock_init(&dest->dst_lock)
;
+
spin_lock_init(&dest->stats.lock)
;
__ip_vs_update_dest(svc, dest, udest);
ip_vs_new_estimator(&dest->stats);
__ip_vs_update_dest(svc, dest, udest);
ip_vs_new_estimator(&dest->stats);
@@
-1062,8
+1063,8
@@
ip_vs_add_service(struct ip_vs_service_user *u, struct ip_vs_service **svc_p)
svc->netmask = u->netmask;
INIT_LIST_HEAD(&svc->destinations);
svc->netmask = u->netmask;
INIT_LIST_HEAD(&svc->destinations);
-
svc->sched_lock = RW_LOCK_UNLOCKED
;
- s
vc->stats.lock = SPIN_LOCK_UNLOCKED
;
+
rwlock_init(&svc->sched_lock)
;
+ s
pin_lock_init(&svc->stats.lock)
;
/* Bind the scheduler */
ret = ip_vs_bind_scheduler(svc, sched);
/* Bind the scheduler */
ret = ip_vs_bind_scheduler(svc, sched);
@@
-1347,13
+1348,13
@@
static int ip_vs_zero_all(void)
static int
proc_do_defense_mode(ctl_table *table, int write, struct file * filp,
static int
proc_do_defense_mode(ctl_table *table, int write, struct file * filp,
- void __user *buffer, size_t *lenp)
+ void __user *buffer, size_t *lenp
, loff_t *ppos
)
{
int *valp = table->data;
int val = *valp;
int rc;
{
int *valp = table->data;
int val = *valp;
int rc;
- rc = proc_dointvec(table, write, filp, buffer, lenp);
+ rc = proc_dointvec(table, write, filp, buffer, lenp
, ppos
);
if (write && (*valp != val)) {
if ((*valp < 0) || (*valp > 3)) {
/* Restore the correct value */
if (write && (*valp != val)) {
if ((*valp < 0) || (*valp > 3)) {
/* Restore the correct value */
@@
-1370,7
+1371,7
@@
proc_do_defense_mode(ctl_table *table, int write, struct file * filp,
static int
proc_do_sync_threshold(ctl_table *table, int write, struct file *filp,
static int
proc_do_sync_threshold(ctl_table *table, int write, struct file *filp,
- void __user *buffer, size_t *lenp)
+ void __user *buffer, size_t *lenp
, loff_t *ppos
)
{
int *valp = table->data;
int val[2];
{
int *valp = table->data;
int val[2];
@@
-1379,7
+1380,7
@@
proc_do_sync_threshold(ctl_table *table, int write, struct file *filp,
/* backup the value first */
memcpy(val, valp, sizeof(val));
/* backup the value first */
memcpy(val, valp, sizeof(val));
- rc = proc_dointvec(table, write, filp, buffer, lenp);
+ rc = proc_dointvec(table, write, filp, buffer, lenp
, ppos
);
if (write && (valp[0] < 0 || valp[1] < 0 || valp[0] >= valp[1])) {
/* Restore the correct value */
memcpy(valp, val, sizeof(val));
if (write && (valp[0] < 0 || valp[1] < 0 || valp[0] >= valp[1])) {
/* Restore the correct value */
memcpy(valp, val, sizeof(val));
@@
-1447,9
+1448,9
@@
static struct ctl_table vs_vars[] = {
{
.ctl_name = NET_IPV4_VS_TO_ES,
.procname = "timeout_established",
{
.ctl_name = NET_IPV4_VS_TO_ES,
.procname = "timeout_established",
- .data = &vs_timeout_table_dos.timeout[IP_VS_S_ESTABLISHED],
+ .data = &vs_timeout_table_dos.timeout[IP_VS_S_ESTABLISHED],
.maxlen = sizeof(int),
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1457,7
+1458,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_synsent",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_SYN_SENT],
.maxlen = sizeof(int),
.procname = "timeout_synsent",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_SYN_SENT],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1465,7
+1466,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_synrecv",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_SYN_RECV],
.maxlen = sizeof(int),
.procname = "timeout_synrecv",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_SYN_RECV],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1473,7
+1474,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_finwait",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_FIN_WAIT],
.maxlen = sizeof(int),
.procname = "timeout_finwait",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_FIN_WAIT],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1489,7
+1490,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_close",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_CLOSE],
.maxlen = sizeof(int),
.procname = "timeout_close",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_CLOSE],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1497,7
+1498,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_closewait",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_CLOSE_WAIT],
.maxlen = sizeof(int),
.procname = "timeout_closewait",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_CLOSE_WAIT],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1505,7
+1506,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_lastack",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_LAST_ACK],
.maxlen = sizeof(int),
.procname = "timeout_lastack",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_LAST_ACK],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1513,7
+1514,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_listen",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_LISTEN],
.maxlen = sizeof(int),
.procname = "timeout_listen",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_LISTEN],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1521,7
+1522,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_synack",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_SYNACK],
.maxlen = sizeof(int),
.procname = "timeout_synack",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_SYNACK],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1529,7
+1530,7
@@
static struct ctl_table vs_vars[] = {
.procname = "timeout_udp",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_UDP],
.maxlen = sizeof(int),
.procname = "timeout_udp",
.data = &vs_timeout_table_dos.timeout[IP_VS_S_UDP],
.maxlen = sizeof(int),
- .mode = 0644,
+ .mode = 0644,
.proc_handler = &proc_dointvec_jiffies,
},
{
.proc_handler = &proc_dointvec_jiffies,
},
{
@@
-1557,6
+1558,14
@@
static struct ctl_table vs_vars[] = {
.mode = 0644,
.proc_handler = &proc_dointvec,
},
.mode = 0644,
.proc_handler = &proc_dointvec,
},
+ {
+ .ctl_name = NET_IPV4_VS_EXPIRE_QUIESCENT_TEMPLATE,
+ .procname = "expire_quiescent_template",
+ .data = &sysctl_ip_vs_expire_quiescent_template,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
{
.ctl_name = NET_IPV4_VS_SYNC_THRESHOLD,
.procname = "sync_threshold",
{
.ctl_name = NET_IPV4_VS_SYNC_THRESHOLD,
.procname = "sync_threshold",
@@
-2357,7
+2366,7
@@
int ip_vs_control_init(void)
}
memset(&ip_vs_stats, 0, sizeof(ip_vs_stats));
}
memset(&ip_vs_stats, 0, sizeof(ip_vs_stats));
-
ip_vs_stats.lock = SPIN_LOCK_UNLOCKED
;
+
spin_lock_init(&ip_vs_stats.lock)
;
ip_vs_new_estimator(&ip_vs_stats);
/* Hook the defense timer */
ip_vs_new_estimator(&ip_vs_stats);
/* Hook the defense timer */