[NETFILTER] ctnetlink: get_conntrack can use GFP_KERNEL ctnetlink_get_conntrack is always called from user context, so GFP_KERNEL is enough.
Signed-off-by: Pablo Neira Ayuso <[EMAIL PROTECTED]> Signed-off-by: Harald Welte <[EMAIL PROTECTED]> --- commit 7b13da49573e77b6e122d9f9253728dac04d6658 tree 55290d268a770834a9635ebca4ef452abb2d735b parent 1f83ca8dd34407e20c17d0f172b8d9e59a326ba1 author Pablo Neira Ayuso <[EMAIL PROTECTED]> Sat, 05 Nov 2005 12:17:17 +0100 committer Harald Welte <[EMAIL PROTECTED]> Sat, 05 Nov 2005 12:17:17 +0100 net/ipv4/netfilter/ip_conntrack_netlink.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/net/ipv4/netfilter/ip_conntrack_netlink.c b/net/ipv4/netfilter/ip_conntrack_netlink.c --- a/net/ipv4/netfilter/ip_conntrack_netlink.c +++ b/net/ipv4/netfilter/ip_conntrack_netlink.c @@ -779,7 +779,7 @@ ctnetlink_get_conntrack(struct sock *ctn ct = tuplehash_to_ctrack(h); err = -ENOMEM; - skb2 = alloc_skb(NLMSG_GOODSIZE, GFP_ATOMIC); + skb2 = alloc_skb(NLMSG_GOODSIZE, GFP_KERNEL); if (!skb2) { ip_conntrack_put(ct); return -ENOMEM; @@ -788,6 +788,12 @@ ctnetlink_get_conntrack(struct sock *ctn err = ctnetlink_fill_info(skb2, NETLINK_CB(skb).pid, nlh->nlmsg_seq, IPCTNL_MSG_CT_NEW, 1, ct); + +#ifdef CONFIG_IP_NF_CT_ACCT + if (NFNL_MSG_TYPE(nlh->nlmsg_type) == IPCTNL_MSG_CT_GET_CTRZERO) + memset(&ct->counters, 0, sizeof(ct->counters)); +#endif + ip_conntrack_put(ct); if (err <= 0) goto free; -- - Harald Welte <[EMAIL PROTECTED]> http://netfilter.org/ ============================================================================ "Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being designed." -- Paul Vixie
pgpg8u0Nxgf7b.pgp
Description: PGP signature