提交 52f095ee 编写于 作者: P Pavel Emelyanov 提交者: David S. Miller

[IPV6]: Fix again the fl6_sock_lookup() fixed locking

YOSHIFUJI fairly pointed out, that the users increment should
be done under the ip6_sk_fl_lock not to give IPV6_FL_A_PUT a
chance to put this count to zero and release the flowlabel.
Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 bc34b841
......@@ -210,9 +210,9 @@ struct ip6_flowlabel * fl6_sock_lookup(struct sock *sk, __be32 label)
for (sfl=np->ipv6_fl_list; sfl; sfl = sfl->next) {
struct ip6_flowlabel *fl = sfl->fl;
if (fl->label == label) {
read_unlock_bh(&ip6_sk_fl_lock);
fl->lastuse = jiffies;
atomic_inc(&fl->users);
read_unlock_bh(&ip6_sk_fl_lock);
return fl;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册