Commit 3046d767 authored by Denis V. Lunev's avatar Denis V. Lunev Committed by David S. Miller

[RAW]: Wrong content of the /proc/net/raw6.

The address of IPv6 raw sockets was shown in the wrong format, from
IPv4 ones.  The problem has been introduced by the commit
42a73808 ("[RAW]: Consolidate proc
interface.")

Thanks to Adrian Bunk who originally noticed the problem.
Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8cd850ef
...@@ -48,7 +48,8 @@ struct raw_iter_state { ...@@ -48,7 +48,8 @@ struct raw_iter_state {
void *raw_seq_start(struct seq_file *seq, loff_t *pos); void *raw_seq_start(struct seq_file *seq, loff_t *pos);
void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos); void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos);
void raw_seq_stop(struct seq_file *seq, void *v); void raw_seq_stop(struct seq_file *seq, void *v);
int raw_seq_open(struct inode *ino, struct file *file, struct raw_hashinfo *h); int raw_seq_open(struct inode *ino, struct file *file,
struct raw_hashinfo *h, const struct seq_operations *ops);
#endif #endif
......
...@@ -962,13 +962,13 @@ static const struct seq_operations raw_seq_ops = { ...@@ -962,13 +962,13 @@ static const struct seq_operations raw_seq_ops = {
.show = raw_seq_show, .show = raw_seq_show,
}; };
int raw_seq_open(struct inode *ino, struct file *file, struct raw_hashinfo *h) int raw_seq_open(struct inode *ino, struct file *file,
struct raw_hashinfo *h, const struct seq_operations *ops)
{ {
int err; int err;
struct raw_iter_state *i; struct raw_iter_state *i;
err = seq_open_net(ino, file, &raw_seq_ops, err = seq_open_net(ino, file, ops, sizeof(struct raw_iter_state));
sizeof(struct raw_iter_state));
if (err < 0) if (err < 0)
return err; return err;
...@@ -980,7 +980,7 @@ EXPORT_SYMBOL_GPL(raw_seq_open); ...@@ -980,7 +980,7 @@ EXPORT_SYMBOL_GPL(raw_seq_open);
static int raw_v4_seq_open(struct inode *inode, struct file *file) static int raw_v4_seq_open(struct inode *inode, struct file *file)
{ {
return raw_seq_open(inode, file, &raw_v4_hashinfo); return raw_seq_open(inode, file, &raw_v4_hashinfo, &raw_seq_ops);
} }
static const struct file_operations raw_seq_fops = { static const struct file_operations raw_seq_fops = {
......
...@@ -1262,7 +1262,7 @@ static const struct seq_operations raw6_seq_ops = { ...@@ -1262,7 +1262,7 @@ static const struct seq_operations raw6_seq_ops = {
static int raw6_seq_open(struct inode *inode, struct file *file) static int raw6_seq_open(struct inode *inode, struct file *file)
{ {
return raw_seq_open(inode, file, &raw_v6_hashinfo); return raw_seq_open(inode, file, &raw_v6_hashinfo, &raw6_seq_ops);
} }
static const struct file_operations raw6_seq_fops = { static const struct file_operations raw6_seq_fops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment