diff options
author | David S. Miller <davem@davemloft.net> | 2010-02-17 16:41:40 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-17 16:41:40 -0500 |
commit | 069c474e88bb7753183f1eadbd7786c27888c8e3 (patch) | |
tree | 09b0385d34a2d0b302b1f61a2783bfcdc510732f /net/xfrm/xfrm_user.c | |
parent | 08326dbe7b5825295ec3711eec53b093549749e5 (diff) |
xfrm: Revert false event eliding commits.
As reported by Alexey Dobriyan:
--------------------
setkey now takes several seconds to run this simple script
and it spits "recv: Resource temporarily unavailable" messages.
#!/usr/sbin/setkey -f
flush;
spdflush;
add A B ipcomp 44 -m tunnel -C deflate;
add B A ipcomp 45 -m tunnel -C deflate;
spdadd A B any -P in ipsec
ipcomp/tunnel/192.168.1.2-192.168.1.3/use;
spdadd B A any -P out ipsec
ipcomp/tunnel/192.168.1.3-192.168.1.2/use;
--------------------
Obviously applications want the events even when the table
is empty. So we cannot make this behavioral change.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_user.c')
-rw-r--r-- | net/xfrm/xfrm_user.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index b0fb7d3bc15e..943c8712bd97 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
@@ -1525,7 +1525,7 @@ static int xfrm_flush_sa(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
1525 | audit_info.secid = NETLINK_CB(skb).sid; | 1525 | audit_info.secid = NETLINK_CB(skb).sid; |
1526 | err = xfrm_state_flush(net, p->proto, &audit_info); | 1526 | err = xfrm_state_flush(net, p->proto, &audit_info); |
1527 | if (err) | 1527 | if (err) |
1528 | return 0; | 1528 | return err; |
1529 | c.data.proto = p->proto; | 1529 | c.data.proto = p->proto; |
1530 | c.event = nlh->nlmsg_type; | 1530 | c.event = nlh->nlmsg_type; |
1531 | c.seq = nlh->nlmsg_seq; | 1531 | c.seq = nlh->nlmsg_seq; |
@@ -1677,7 +1677,7 @@ static int xfrm_flush_policy(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
1677 | audit_info.secid = NETLINK_CB(skb).sid; | 1677 | audit_info.secid = NETLINK_CB(skb).sid; |
1678 | err = xfrm_policy_flush(net, type, &audit_info); | 1678 | err = xfrm_policy_flush(net, type, &audit_info); |
1679 | if (err) | 1679 | if (err) |
1680 | return 0; | 1680 | return err; |
1681 | c.data.type = type; | 1681 | c.data.type = type; |
1682 | c.event = nlh->nlmsg_type; | 1682 | c.event = nlh->nlmsg_type; |
1683 | c.seq = nlh->nlmsg_seq; | 1683 | c.seq = nlh->nlmsg_seq; |