diff options
author | Denis V. Lunev <den@openvz.org> | 2007-11-20 01:31:54 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:54:28 -0500 |
commit | e372c41401993b45c721c4d92730e7e0a79f7c1b (patch) | |
tree | 8f062f506c0578fc83b7d05c8751a7ccac96e50e /net/unix/af_unix.c | |
parent | 097e66c578459f79e3a2128c54e9df5194e1419a (diff) |
[NET]: Consolidate net namespace related proc files creation.
Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r-- | net/unix/af_unix.c | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index ecad42b72ad6..eacddb21a9b4 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -2018,7 +2018,7 @@ static unsigned int unix_poll(struct file * file, struct socket *sock, poll_tabl | |||
2018 | 2018 | ||
2019 | #ifdef CONFIG_PROC_FS | 2019 | #ifdef CONFIG_PROC_FS |
2020 | struct unix_iter_state { | 2020 | struct unix_iter_state { |
2021 | struct net *net; | 2021 | struct seq_net_private p; |
2022 | int i; | 2022 | int i; |
2023 | }; | 2023 | }; |
2024 | static struct sock *unix_seq_idx(struct unix_iter_state *iter, loff_t pos) | 2024 | static struct sock *unix_seq_idx(struct unix_iter_state *iter, loff_t pos) |
@@ -2027,7 +2027,7 @@ static struct sock *unix_seq_idx(struct unix_iter_state *iter, loff_t pos) | |||
2027 | struct sock *s; | 2027 | struct sock *s; |
2028 | 2028 | ||
2029 | for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) { | 2029 | for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) { |
2030 | if (s->sk_net != iter->net) | 2030 | if (s->sk_net != iter->p.net) |
2031 | continue; | 2031 | continue; |
2032 | if (off == pos) | 2032 | if (off == pos) |
2033 | return s; | 2033 | return s; |
@@ -2054,7 +2054,7 @@ static void *unix_seq_next(struct seq_file *seq, void *v, loff_t *pos) | |||
2054 | sk = first_unix_socket(&iter->i); | 2054 | sk = first_unix_socket(&iter->i); |
2055 | else | 2055 | else |
2056 | sk = next_unix_socket(&iter->i, sk); | 2056 | sk = next_unix_socket(&iter->i, sk); |
2057 | while (sk && (sk->sk_net != iter->net)) | 2057 | while (sk && (sk->sk_net != iter->p.net)) |
2058 | sk = next_unix_socket(&iter->i, sk); | 2058 | sk = next_unix_socket(&iter->i, sk); |
2059 | return sk; | 2059 | return sk; |
2060 | } | 2060 | } |
@@ -2118,27 +2118,8 @@ static const struct seq_operations unix_seq_ops = { | |||
2118 | 2118 | ||
2119 | static int unix_seq_open(struct inode *inode, struct file *file) | 2119 | static int unix_seq_open(struct inode *inode, struct file *file) |
2120 | { | 2120 | { |
2121 | struct unix_iter_state *it; | 2121 | return seq_open_net(inode, file, &unix_seq_ops, |
2122 | 2122 | sizeof(struct unix_iter_state)); | |
2123 | it = __seq_open_private(file, &unix_seq_ops, | ||
2124 | sizeof(struct unix_iter_state)); | ||
2125 | if (it == NULL) | ||
2126 | return -ENOMEM; | ||
2127 | |||
2128 | it->net = get_proc_net(inode); | ||
2129 | if (it->net == NULL) { | ||
2130 | seq_release_private(inode, file); | ||
2131 | return -ENXIO; | ||
2132 | } | ||
2133 | return 0; | ||
2134 | } | ||
2135 | |||
2136 | static int unix_seq_release(struct inode *inode, struct file *file) | ||
2137 | { | ||
2138 | struct seq_file *seq = file->private_data; | ||
2139 | struct unix_iter_state *iter = seq->private; | ||
2140 | put_net(iter->net); | ||
2141 | return seq_release_private(inode, file); | ||
2142 | } | 2123 | } |
2143 | 2124 | ||
2144 | static const struct file_operations unix_seq_fops = { | 2125 | static const struct file_operations unix_seq_fops = { |
@@ -2146,7 +2127,7 @@ static const struct file_operations unix_seq_fops = { | |||
2146 | .open = unix_seq_open, | 2127 | .open = unix_seq_open, |
2147 | .read = seq_read, | 2128 | .read = seq_read, |
2148 | .llseek = seq_lseek, | 2129 | .llseek = seq_lseek, |
2149 | .release = unix_seq_release, | 2130 | .release = seq_release_net, |
2150 | }; | 2131 | }; |
2151 | 2132 | ||
2152 | #endif | 2133 | #endif |