diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/core/rtnetlink.c | 9 | ||||
-rw-r--r-- | net/ipv4/inet_diag.c | 18 | ||||
-rw-r--r-- | net/netfilter/ipset/ip_set_core.c | 10 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_netlink.c | 18 | ||||
-rw-r--r-- | net/netfilter/nfnetlink_acct.c | 6 | ||||
-rw-r--r-- | net/netlink/af_netlink.c | 11 | ||||
-rw-r--r-- | net/netlink/genetlink.c | 9 | ||||
-rw-r--r-- | net/unix/diag.c | 10 | ||||
-rw-r--r-- | net/xfrm/xfrm_user.c | 9 |
9 files changed, 66 insertions, 34 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 65aebd450027..7aef62e53113 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -1981,8 +1981,13 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
1981 | 1981 | ||
1982 | __rtnl_unlock(); | 1982 | __rtnl_unlock(); |
1983 | rtnl = net->rtnl; | 1983 | rtnl = net->rtnl; |
1984 | err = netlink_dump_start(rtnl, skb, nlh, dumpit, | 1984 | { |
1985 | NULL, min_dump_alloc); | 1985 | struct netlink_dump_control c = { |
1986 | .dump = dumpit, | ||
1987 | .min_dump_alloc = min_dump_alloc, | ||
1988 | }; | ||
1989 | err = netlink_dump_start(rtnl, skb, nlh, &c); | ||
1990 | } | ||
1986 | rtnl_lock(); | 1991 | rtnl_lock(); |
1987 | return err; | 1992 | return err; |
1988 | } | 1993 | } |
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index fcf281819cd4..8d25a1c557eb 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c | |||
@@ -960,9 +960,12 @@ static int inet_diag_rcv_msg_compat(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
960 | inet_diag_bc_audit(nla_data(attr), nla_len(attr))) | 960 | inet_diag_bc_audit(nla_data(attr), nla_len(attr))) |
961 | return -EINVAL; | 961 | return -EINVAL; |
962 | } | 962 | } |
963 | 963 | { | |
964 | return netlink_dump_start(sock_diag_nlsk, skb, nlh, | 964 | struct netlink_dump_control c = { |
965 | inet_diag_dump_compat, NULL, 0); | 965 | .dump = inet_diag_dump_compat, |
966 | }; | ||
967 | return netlink_dump_start(sock_diag_nlsk, skb, nlh, &c); | ||
968 | } | ||
966 | } | 969 | } |
967 | 970 | ||
968 | return inet_diag_get_exact_compat(skb, nlh); | 971 | return inet_diag_get_exact_compat(skb, nlh); |
@@ -985,9 +988,12 @@ static int inet_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h) | |||
985 | inet_diag_bc_audit(nla_data(attr), nla_len(attr))) | 988 | inet_diag_bc_audit(nla_data(attr), nla_len(attr))) |
986 | return -EINVAL; | 989 | return -EINVAL; |
987 | } | 990 | } |
988 | 991 | { | |
989 | return netlink_dump_start(sock_diag_nlsk, skb, h, | 992 | struct netlink_dump_control c = { |
990 | inet_diag_dump, NULL, 0); | 993 | .dump = inet_diag_dump, |
994 | }; | ||
995 | return netlink_dump_start(sock_diag_nlsk, skb, h, &c); | ||
996 | } | ||
991 | } | 997 | } |
992 | 998 | ||
993 | return inet_diag_get_exact(skb, h, (struct inet_diag_req_v2 *)NLMSG_DATA(h)); | 999 | return inet_diag_get_exact(skb, h, (struct inet_diag_req_v2 *)NLMSG_DATA(h)); |
diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c index 32dbf0fa89db..e7f90e7082b4 100644 --- a/net/netfilter/ipset/ip_set_core.c +++ b/net/netfilter/ipset/ip_set_core.c | |||
@@ -1162,9 +1162,13 @@ ip_set_dump(struct sock *ctnl, struct sk_buff *skb, | |||
1162 | if (unlikely(protocol_failed(attr))) | 1162 | if (unlikely(protocol_failed(attr))) |
1163 | return -IPSET_ERR_PROTOCOL; | 1163 | return -IPSET_ERR_PROTOCOL; |
1164 | 1164 | ||
1165 | return netlink_dump_start(ctnl, skb, nlh, | 1165 | { |
1166 | ip_set_dump_start, | 1166 | struct netlink_dump_control c = { |
1167 | ip_set_dump_done, 0); | 1167 | .dump = ip_set_dump_start, |
1168 | .done = ip_set_dump_done, | ||
1169 | }; | ||
1170 | return netlink_dump_start(ctnl, skb, nlh, &c); | ||
1171 | } | ||
1168 | } | 1172 | } |
1169 | 1173 | ||
1170 | /* Add, del and test */ | 1174 | /* Add, del and test */ |
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index 9307b033c0c9..61f7feb7932b 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c | |||
@@ -977,9 +977,13 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb, | |||
977 | u16 zone; | 977 | u16 zone; |
978 | int err; | 978 | int err; |
979 | 979 | ||
980 | if (nlh->nlmsg_flags & NLM_F_DUMP) | 980 | if (nlh->nlmsg_flags & NLM_F_DUMP) { |
981 | return netlink_dump_start(ctnl, skb, nlh, ctnetlink_dump_table, | 981 | struct netlink_dump_control c = { |
982 | ctnetlink_done, 0); | 982 | .dump = ctnetlink_dump_table, |
983 | .done = ctnetlink_done, | ||
984 | }; | ||
985 | return netlink_dump_start(ctnl, skb, nlh, &c); | ||
986 | } | ||
983 | 987 | ||
984 | err = ctnetlink_parse_zone(cda[CTA_ZONE], &zone); | 988 | err = ctnetlink_parse_zone(cda[CTA_ZONE], &zone); |
985 | if (err < 0) | 989 | if (err < 0) |
@@ -1850,9 +1854,11 @@ ctnetlink_get_expect(struct sock *ctnl, struct sk_buff *skb, | |||
1850 | int err; | 1854 | int err; |
1851 | 1855 | ||
1852 | if (nlh->nlmsg_flags & NLM_F_DUMP) { | 1856 | if (nlh->nlmsg_flags & NLM_F_DUMP) { |
1853 | return netlink_dump_start(ctnl, skb, nlh, | 1857 | struct netlink_dump_control c = { |
1854 | ctnetlink_exp_dump_table, | 1858 | .dump = ctnetlink_exp_dump_table, |
1855 | ctnetlink_exp_done, 0); | 1859 | .done = ctnetlink_exp_done, |
1860 | }; | ||
1861 | return netlink_dump_start(ctnl, skb, nlh, &c); | ||
1856 | } | 1862 | } |
1857 | 1863 | ||
1858 | err = ctnetlink_parse_zone(cda[CTA_EXPECT_ZONE], &zone); | 1864 | err = ctnetlink_parse_zone(cda[CTA_EXPECT_ZONE], &zone); |
diff --git a/net/netfilter/nfnetlink_acct.c b/net/netfilter/nfnetlink_acct.c index 11ba013e47f6..3eb348bfc4fb 100644 --- a/net/netfilter/nfnetlink_acct.c +++ b/net/netfilter/nfnetlink_acct.c | |||
@@ -171,8 +171,10 @@ nfnl_acct_get(struct sock *nfnl, struct sk_buff *skb, | |||
171 | char *acct_name; | 171 | char *acct_name; |
172 | 172 | ||
173 | if (nlh->nlmsg_flags & NLM_F_DUMP) { | 173 | if (nlh->nlmsg_flags & NLM_F_DUMP) { |
174 | return netlink_dump_start(nfnl, skb, nlh, nfnl_acct_dump, | 174 | struct netlink_dump_control c = { |
175 | NULL, 0); | 175 | .dump = nfnl_acct_dump, |
176 | }; | ||
177 | return netlink_dump_start(nfnl, skb, nlh, &c); | ||
176 | } | 178 | } |
177 | 179 | ||
178 | if (!tb[NFACCT_NAME]) | 180 | if (!tb[NFACCT_NAME]) |
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 4d751e3d4b4b..ab74845876d2 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -1736,10 +1736,7 @@ errout_skb: | |||
1736 | 1736 | ||
1737 | int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, | 1737 | int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, |
1738 | const struct nlmsghdr *nlh, | 1738 | const struct nlmsghdr *nlh, |
1739 | int (*dump)(struct sk_buff *skb, | 1739 | struct netlink_dump_control *control) |
1740 | struct netlink_callback *), | ||
1741 | int (*done)(struct netlink_callback *), | ||
1742 | u16 min_dump_alloc) | ||
1743 | { | 1740 | { |
1744 | struct netlink_callback *cb; | 1741 | struct netlink_callback *cb; |
1745 | struct sock *sk; | 1742 | struct sock *sk; |
@@ -1750,10 +1747,10 @@ int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, | |||
1750 | if (cb == NULL) | 1747 | if (cb == NULL) |
1751 | return -ENOBUFS; | 1748 | return -ENOBUFS; |
1752 | 1749 | ||
1753 | cb->dump = dump; | 1750 | cb->dump = control->dump; |
1754 | cb->done = done; | 1751 | cb->done = control->done; |
1755 | cb->nlh = nlh; | 1752 | cb->nlh = nlh; |
1756 | cb->min_dump_alloc = min_dump_alloc; | 1753 | cb->min_dump_alloc = control->min_dump_alloc; |
1757 | atomic_inc(&skb->users); | 1754 | atomic_inc(&skb->users); |
1758 | cb->skb = skb; | 1755 | cb->skb = skb; |
1759 | 1756 | ||
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index a1154717219e..9f40441d7a7d 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c | |||
@@ -563,8 +563,13 @@ static int genl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
563 | return -EOPNOTSUPP; | 563 | return -EOPNOTSUPP; |
564 | 564 | ||
565 | genl_unlock(); | 565 | genl_unlock(); |
566 | err = netlink_dump_start(net->genl_sock, skb, nlh, | 566 | { |
567 | ops->dumpit, ops->done, 0); | 567 | struct netlink_dump_control c = { |
568 | .dump = ops->dumpit, | ||
569 | .done = ops->done, | ||
570 | }; | ||
571 | err = netlink_dump_start(net->genl_sock, skb, nlh, &c); | ||
572 | } | ||
568 | genl_lock(); | 573 | genl_lock(); |
569 | return err; | 574 | return err; |
570 | } | 575 | } |
diff --git a/net/unix/diag.c b/net/unix/diag.c index 6b7697fd911b..4195555aea65 100644 --- a/net/unix/diag.c +++ b/net/unix/diag.c | |||
@@ -301,10 +301,12 @@ static int unix_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h) | |||
301 | if (nlmsg_len(h) < hdrlen) | 301 | if (nlmsg_len(h) < hdrlen) |
302 | return -EINVAL; | 302 | return -EINVAL; |
303 | 303 | ||
304 | if (h->nlmsg_flags & NLM_F_DUMP) | 304 | if (h->nlmsg_flags & NLM_F_DUMP) { |
305 | return netlink_dump_start(sock_diag_nlsk, skb, h, | 305 | struct netlink_dump_control c = { |
306 | unix_diag_dump, NULL, 0); | 306 | .dump = unix_diag_dump, |
307 | else | 307 | }; |
308 | return netlink_dump_start(sock_diag_nlsk, skb, h, &c); | ||
309 | } else | ||
308 | return unix_diag_get_exact(skb, h, (struct unix_diag_req *)NLMSG_DATA(h)); | 310 | return unix_diag_get_exact(skb, h, (struct unix_diag_req *)NLMSG_DATA(h)); |
309 | } | 311 | } |
310 | 312 | ||
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 66b84fbf2746..7128dde0fe1a 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
@@ -2299,8 +2299,13 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
2299 | if (link->dump == NULL) | 2299 | if (link->dump == NULL) |
2300 | return -EINVAL; | 2300 | return -EINVAL; |
2301 | 2301 | ||
2302 | return netlink_dump_start(net->xfrm.nlsk, skb, nlh, | 2302 | { |
2303 | link->dump, link->done, 0); | 2303 | struct netlink_dump_control c = { |
2304 | .dump = link->dump, | ||
2305 | .done = link->done, | ||
2306 | }; | ||
2307 | return netlink_dump_start(net->xfrm.nlsk, skb, nlh, &c); | ||
2308 | } | ||
2304 | } | 2309 | } |
2305 | 2310 | ||
2306 | err = nlmsg_parse(nlh, xfrm_msg_min[type], attrs, XFRMA_MAX, | 2311 | err = nlmsg_parse(nlh, xfrm_msg_min[type], attrs, XFRMA_MAX, |