kernel-fxtec-pro1x/net/ipv4/ipvs
Sven Wegener 39ac50d0c7 ipvs: Fix race conditions in lblc scheduler
We can't access the cache entry outside of our critical read-locked region,
because someone may free that entry. And we also need to check in the critical
region wether the destination is still available, i.e. it's not in the trash.
If we drop our reference counter, the destination can be purged from the trash
at any time. Our caller only guarantees that no destination is moved to the
trash, while we are scheduling. Also there is no need for our own rwlock,
there is already one in the service structure for use in the schedulers.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Signed-off-by: Simon Horman <horms@verge.net.au>
2008-08-19 17:37:04 +10:00
..
ip_vs_app.c ipvs: Annotate init functions with __init 2008-08-11 11:46:18 +02:00
ip_vs_conn.c ipvs: Annotate init functions with __init 2008-08-11 11:46:18 +02:00
ip_vs_core.c ipvs: Create init functions for estimator code 2008-08-15 09:26:15 +10:00
ip_vs_ctl.c ipvs: Only call init_service, update_service and done_service for schedulers if defined 2008-08-15 09:26:14 +10:00
ip_vs_dh.c ipvs: Initialize schedulers' struct list_head at compile time 2008-08-11 11:46:06 +02:00
ip_vs_est.c ipvs: Create init functions for estimator code 2008-08-15 09:26:15 +10:00
ip_vs_ftp.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_vs_lblc.c ipvs: Fix race conditions in lblc scheduler 2008-08-19 17:37:04 +10:00
ip_vs_lblcr.c ipvs: rename __ip_vs_wlc_schedule in lblc and lblcr schedulers 2008-08-15 09:26:15 +10:00
ip_vs_lc.c ipvs: Only call init_service, update_service and done_service for schedulers if defined 2008-08-15 09:26:14 +10:00
ip_vs_nq.c ipvs: Only call init_service, update_service and done_service for schedulers if defined 2008-08-15 09:26:14 +10:00
ip_vs_proto.c ipvs: Annotate init functions with __init 2008-08-11 11:46:18 +02:00
ip_vs_proto_ah.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_vs_proto_esp.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_vs_proto_tcp.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_vs_proto_udp.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_vs_rr.c ipvs: Only call init_service, update_service and done_service for schedulers if defined 2008-08-15 09:26:14 +10:00
ip_vs_sched.c ipvs: Use list_empty() instead of open-coding the same functionality 2008-08-11 11:45:57 +02:00
ip_vs_sed.c ipvs: Only call init_service, update_service and done_service for schedulers if defined 2008-08-15 09:26:14 +10:00
ip_vs_sh.c ipvs: Initialize schedulers' struct list_head at compile time 2008-08-11 11:46:06 +02:00
ip_vs_sync.c ipvs: Fix possible deadlock in sync code 2008-08-11 11:44:38 +02:00
ip_vs_wlc.c ipvs: Only call init_service, update_service and done_service for schedulers if defined 2008-08-15 09:26:14 +10:00
ip_vs_wrr.c ipvs: Initialize schedulers' struct list_head at compile time 2008-08-11 11:46:06 +02:00
ip_vs_xmit.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
Kconfig
Makefile