diff options
author | Sven Wegener <sven.wegener@stealer.net> | 2008-08-14 00:47:16 +0200 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2008-08-15 01:26:15 +0200 |
commit | a919cf4b6b499416b6e2247dbc79196c4325f2e6 (patch) | |
tree | 07125d10469cb9d2779280a0f389848b5e045b5a /include/net/ip_vs.h | |
parent | ipvs: Only call init_service, update_service and done_service for schedulers ... (diff) | |
download | linux-a919cf4b6b499416b6e2247dbc79196c4325f2e6.tar.xz linux-a919cf4b6b499416b6e2247dbc79196c4325f2e6.zip |
ipvs: Create init functions for estimator code
Commit 8ab19ea36c5c5340ff598e4d15fc084eb65671dc ("ipvs: Fix possible deadlock
in estimator code") fixed a deadlock condition, but that condition can only
happen during unload of IPVS, because during normal operation there is at least
our global stats structure in the estimator list. The mod_timer() and
del_timer_sync() calls are actually initialization and cleanup code in
disguise. Let's make it explicit and move them to their own init and cleanup
function.
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'include/net/ip_vs.h')
-rw-r--r-- | include/net/ip_vs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 7312c3dd309f..a25ad243031d 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h @@ -683,6 +683,8 @@ extern void ip_vs_sync_conn(struct ip_vs_conn *cp); /* * IPVS rate estimator prototypes (from ip_vs_est.c) */ +extern int ip_vs_estimator_init(void); +extern void ip_vs_estimator_cleanup(void); extern void ip_vs_new_estimator(struct ip_vs_stats *stats); extern void ip_vs_kill_estimator(struct ip_vs_stats *stats); extern void ip_vs_zero_estimator(struct ip_vs_stats *stats); |