diff options
author | Julian Anastasov <ja@ssi.bg> | 2013-09-12 11:21:08 +0300 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2013-09-18 14:39:09 -0500 |
commit | 2f3d771a35fee21a1f17364b46b3c8cc66dc6892 (patch) | |
tree | 353158f116b4b25c89f7526f85e75002d98e3190 /net/ceph | |
parent | bcbde4c0a7556cca72874c5e1efa4dccb5198a2b (diff) | |
download | op-kernel-dev-2f3d771a35fee21a1f17364b46b3c8cc66dc6892.zip op-kernel-dev-2f3d771a35fee21a1f17364b46b3c8cc66dc6892.tar.gz |
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/ceph')
0 files changed, 0 insertions, 0 deletions