aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorDenis V. Lunev <den@openvz.org>2008-01-31 06:46:12 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-31 22:27:24 -0500
commit377cf82d66ea43f3d3cb82c2563e65b5c12c9bfd (patch)
tree9bce5ff5153b91104dcf560626a12289d013809e /net/ipv4
parentb1641064a3f4a58644bc2e8edf40c025c58473b4 (diff)
[RAW]: Family check in the /proc/net/raw[6] is extra.
Different hashtables are used for IPv6 and IPv4 raw sockets, so no need to check the socket family in the iterator over hashtables. Clean this out. Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/raw.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index f863c3dc542..507cbfe72eb 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -862,8 +862,7 @@ static struct sock *raw_get_first(struct seq_file *seq)
862 struct hlist_node *node; 862 struct hlist_node *node;
863 863
864 sk_for_each(sk, node, &state->h->ht[state->bucket]) 864 sk_for_each(sk, node, &state->h->ht[state->bucket])
865 if (sk->sk_net == state->p.net && 865 if (sk->sk_net == state->p.net)
866 sk->sk_family == state->family)
867 goto found; 866 goto found;
868 } 867 }
869 sk = NULL; 868 sk = NULL;
@@ -879,8 +878,7 @@ static struct sock *raw_get_next(struct seq_file *seq, struct sock *sk)
879 sk = sk_next(sk); 878 sk = sk_next(sk);
880try_again: 879try_again:
881 ; 880 ;
882 } while (sk && sk->sk_net != state->p.net && 881 } while (sk && sk->sk_net != state->p.net);
883 sk->sk_family != state->family);
884 882
885 if (!sk && ++state->bucket < RAW_HTABLE_SIZE) { 883 if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
886 sk = sk_head(&state->h->ht[state->bucket]); 884 sk = sk_head(&state->h->ht[state->bucket]);
@@ -974,8 +972,7 @@ static const struct seq_operations raw_seq_ops = {
974 .show = raw_seq_show, 972 .show = raw_seq_show,
975}; 973};
976 974
977int raw_seq_open(struct inode *ino, struct file *file, struct raw_hashinfo *h, 975int raw_seq_open(struct inode *ino, struct file *file, struct raw_hashinfo *h)
978 unsigned short family)
979{ 976{
980 int err; 977 int err;
981 struct raw_iter_state *i; 978 struct raw_iter_state *i;
@@ -987,14 +984,13 @@ int raw_seq_open(struct inode *ino, struct file *file, struct raw_hashinfo *h,
987 984
988 i = raw_seq_private((struct seq_file *)file->private_data); 985 i = raw_seq_private((struct seq_file *)file->private_data);
989 i->h = h; 986 i->h = h;
990 i->family = family;
991 return 0; 987 return 0;
992} 988}
993EXPORT_SYMBOL_GPL(raw_seq_open); 989EXPORT_SYMBOL_GPL(raw_seq_open);
994 990
995static int raw_v4_seq_open(struct inode *inode, struct file *file) 991static int raw_v4_seq_open(struct inode *inode, struct file *file)
996{ 992{
997 return raw_seq_open(inode, file, &raw_v4_hashinfo, PF_INET); 993 return raw_seq_open(inode, file, &raw_v4_hashinfo);
998} 994}
999 995
1000static const struct file_operations raw_seq_fops = { 996static const struct file_operations raw_seq_fops = {