[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>
This commit is contained in:
committed by
David S. Miller
parent
097e66c578
commit
e372c41401
@@ -2364,7 +2364,7 @@ static int dev_ifconf(struct net *net, char __user *arg)
|
||||
*/
|
||||
void *dev_seq_start(struct seq_file *seq, loff_t *pos)
|
||||
{
|
||||
struct net *net = seq->private;
|
||||
struct net *net = seq_file_net(seq);
|
||||
loff_t off;
|
||||
struct net_device *dev;
|
||||
|
||||
@@ -2382,7 +2382,7 @@ void *dev_seq_start(struct seq_file *seq, loff_t *pos)
|
||||
|
||||
void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||
{
|
||||
struct net *net = seq->private;
|
||||
struct net *net = seq_file_net(seq);
|
||||
++*pos;
|
||||
return v == SEQ_START_TOKEN ?
|
||||
first_net_device(net) : next_net_device((struct net_device *)v);
|
||||
@@ -2481,26 +2481,8 @@ static const struct seq_operations dev_seq_ops = {
|
||||
|
||||
static int dev_seq_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct seq_file *seq;
|
||||
int res;
|
||||
res = seq_open(file, &dev_seq_ops);
|
||||
if (!res) {
|
||||
seq = file->private_data;
|
||||
seq->private = get_proc_net(inode);
|
||||
if (!seq->private) {
|
||||
seq_release(inode, file);
|
||||
res = -ENXIO;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
static int dev_seq_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct seq_file *seq = file->private_data;
|
||||
struct net *net = seq->private;
|
||||
put_net(net);
|
||||
return seq_release(inode, file);
|
||||
return seq_open_net(inode, file, &dev_seq_ops,
|
||||
sizeof(struct seq_net_private));
|
||||
}
|
||||
|
||||
static const struct file_operations dev_seq_fops = {
|
||||
@@ -2508,7 +2490,7 @@ static const struct file_operations dev_seq_fops = {
|
||||
.open = dev_seq_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = dev_seq_release,
|
||||
.release = seq_release_net,
|
||||
};
|
||||
|
||||
static const struct seq_operations softnet_seq_ops = {
|
||||
|
Reference in New Issue
Block a user