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
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
net
/
ipv4
/
ipvs
/
ip_vs_app.c
diff --git
a/net/ipv4/ipvs/ip_vs_app.c
b/net/ipv4/ipvs/ip_vs_app.c
index
9b176a9
..
6c40899
100644
(file)
--- a/
net/ipv4/ipvs/ip_vs_app.c
+++ b/
net/ipv4/ipvs/ip_vs_app.c
@@
-31,6
+31,7
@@
#include <linux/stat.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
+#include <linux/mutex.h>
#include <net/ip_vs.h>
#include <net/ip_vs.h>
@@
-40,7
+41,7
@@
EXPORT_SYMBOL(register_ip_vs_app_inc);
/* ipvs application list head */
static LIST_HEAD(ip_vs_app_list);
/* ipvs application list head */
static LIST_HEAD(ip_vs_app_list);
-static DE
CLAR
E_MUTEX(__ip_vs_app_mutex);
+static DE
FIN
E_MUTEX(__ip_vs_app_mutex);
/*
/*
@@
-79,10
+80,9
@@
ip_vs_app_inc_new(struct ip_vs_app *app, __u16 proto, __u16 port)
if (!pp->unregister_app)
return -EOPNOTSUPP;
if (!pp->unregister_app)
return -EOPNOTSUPP;
- inc = km
alloc(sizeof(struct ip_vs_app
), GFP_KERNEL);
+ inc = km
emdup(app, sizeof(*inc
), GFP_KERNEL);
if (!inc)
return -ENOMEM;
if (!inc)
return -ENOMEM;
- memcpy(inc, app, sizeof(*inc));
INIT_LIST_HEAD(&inc->p_list);
INIT_LIST_HEAD(&inc->incs_list);
inc->app = app;
INIT_LIST_HEAD(&inc->p_list);
INIT_LIST_HEAD(&inc->incs_list);
inc->app = app;
@@
-173,11
+173,11
@@
register_ip_vs_app_inc(struct ip_vs_app *app, __u16 proto, __u16 port)
{
int result;
{
int result;
-
down
(&__ip_vs_app_mutex);
+
mutex_lock
(&__ip_vs_app_mutex);
result = ip_vs_app_inc_new(app, proto, port);
result = ip_vs_app_inc_new(app, proto, port);
-
up
(&__ip_vs_app_mutex);
+
mutex_unlock
(&__ip_vs_app_mutex);
return result;
}
return result;
}
@@
-191,11
+191,11
@@
int register_ip_vs_app(struct ip_vs_app *app)
/* increase the module use count */
ip_vs_use_count_inc();
/* increase the module use count */
ip_vs_use_count_inc();
-
down
(&__ip_vs_app_mutex);
+
mutex_lock
(&__ip_vs_app_mutex);
list_add(&app->a_list, &ip_vs_app_list);
list_add(&app->a_list, &ip_vs_app_list);
-
up
(&__ip_vs_app_mutex);
+
mutex_unlock
(&__ip_vs_app_mutex);
return 0;
}
return 0;
}
@@
-209,7
+209,7
@@
void unregister_ip_vs_app(struct ip_vs_app *app)
{
struct ip_vs_app *inc, *nxt;
{
struct ip_vs_app *inc, *nxt;
-
down
(&__ip_vs_app_mutex);
+
mutex_lock
(&__ip_vs_app_mutex);
list_for_each_entry_safe(inc, nxt, &app->incs_list, a_list) {
ip_vs_app_inc_release(inc);
list_for_each_entry_safe(inc, nxt, &app->incs_list, a_list) {
ip_vs_app_inc_release(inc);
@@
-217,7
+217,7
@@
void unregister_ip_vs_app(struct ip_vs_app *app)
list_del(&app->a_list);
list_del(&app->a_list);
-
up
(&__ip_vs_app_mutex);
+
mutex_unlock
(&__ip_vs_app_mutex);
/* decrease the module use count */
ip_vs_use_count_dec();
/* decrease the module use count */
ip_vs_use_count_dec();
@@
-498,7
+498,7
@@
static struct ip_vs_app *ip_vs_app_idx(loff_t pos)
static void *ip_vs_app_seq_start(struct seq_file *seq, loff_t *pos)
{
static void *ip_vs_app_seq_start(struct seq_file *seq, loff_t *pos)
{
-
down
(&__ip_vs_app_mutex);
+
mutex_lock
(&__ip_vs_app_mutex);
return *pos ? ip_vs_app_idx(*pos - 1) : SEQ_START_TOKEN;
}
return *pos ? ip_vs_app_idx(*pos - 1) : SEQ_START_TOKEN;
}
@@
-530,7
+530,7
@@
static void *ip_vs_app_seq_next(struct seq_file *seq, void *v, loff_t *pos)
static void ip_vs_app_seq_stop(struct seq_file *seq, void *v)
{
static void ip_vs_app_seq_stop(struct seq_file *seq, void *v)
{
-
up
(&__ip_vs_app_mutex);
+
mutex_unlock
(&__ip_vs_app_mutex);
}
static int ip_vs_app_seq_show(struct seq_file *seq, void *v)
}
static int ip_vs_app_seq_show(struct seq_file *seq, void *v)