|
@@ -51,7 +51,7 @@ ip_vs_wlc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
|
|
* new connections.
|
|
|
*/
|
|
|
|
|
|
- list_for_each_entry(dest, &svc->destinations, n_list) {
|
|
|
+ list_for_each_entry_rcu(dest, &svc->destinations, n_list) {
|
|
|
if (!(dest->flags & IP_VS_DEST_F_OVERLOAD) &&
|
|
|
atomic_read(&dest->weight) > 0) {
|
|
|
least = dest;
|
|
@@ -66,7 +66,7 @@ ip_vs_wlc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
|
|
* Find the destination with the least load.
|
|
|
*/
|
|
|
nextstage:
|
|
|
- list_for_each_entry_continue(dest, &svc->destinations, n_list) {
|
|
|
+ list_for_each_entry_continue_rcu(dest, &svc->destinations, n_list) {
|
|
|
if (dest->flags & IP_VS_DEST_F_OVERLOAD)
|
|
|
continue;
|
|
|
doh = ip_vs_dest_conn_overhead(dest);
|