summaryrefslogtreecommitdiffstats
path: root/net/sched/cls_tcindex.c
diff options
context:
space:
mode:
authorJulian Anastasov <ja@ssi.bg>2013-09-12 10:21:08 +0200
committerSimon Horman <horms@verge.net.au>2013-09-18 21:39:09 +0200
commit2f3d771a35fee21a1f17364b46b3c8cc66dc6892 (patch)
tree353158f116b4b25c89f7526f85e75002d98e3190 /net/sched/cls_tcindex.c
parentipvs: make the service replacement more robust (diff)
downloadlinux-2f3d771a35fee21a1f17364b46b3c8cc66dc6892.tar.xz
linux-2f3d771a35fee21a1f17364b46b3c8cc66dc6892.zip
ipvs: do not use dest after ip_vs_dest_put in LBLC
commit c2a4ffb70eef39 ("ipvs: convert lblc scheduler to rcu") allows RCU readers to use dest after calling ip_vs_dest_put(). In the corner case it can race with ip_vs_dest_trash_expire() which can release the dest while it is being returned to the RCU readers as scheduling result. To fix the problem do not allow en->dest to be replaced and defer the ip_vs_dest_put() call by using RCU callback. Now en->dest does not need to be RCU pointer. Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net/sched/cls_tcindex.c')
0 files changed, 0 insertions, 0 deletions