neigh: switch to proc_create_seq_data
And use proc private data directly instead of doing a detour through seq->private. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -59,7 +59,7 @@ static int pneigh_ifdown_and_unlock(struct neigh_table *tbl,
|
|||||||
struct net_device *dev);
|
struct net_device *dev);
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
static const struct file_operations neigh_stat_seq_fops;
|
static const struct seq_operations neigh_stat_seq_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1558,8 +1558,8 @@ void neigh_table_init(int index, struct neigh_table *tbl)
|
|||||||
panic("cannot create neighbour cache statistics");
|
panic("cannot create neighbour cache statistics");
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
if (!proc_create_data(tbl->id, 0, init_net.proc_net_stat,
|
if (!proc_create_seq_data(tbl->id, 0, init_net.proc_net_stat,
|
||||||
&neigh_stat_seq_fops, tbl))
|
&neigh_stat_seq_ops, tbl))
|
||||||
panic("cannot create neighbour proc dir entry");
|
panic("cannot create neighbour proc dir entry");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2786,7 +2786,7 @@ EXPORT_SYMBOL(neigh_seq_stop);
|
|||||||
|
|
||||||
static void *neigh_stat_seq_start(struct seq_file *seq, loff_t *pos)
|
static void *neigh_stat_seq_start(struct seq_file *seq, loff_t *pos)
|
||||||
{
|
{
|
||||||
struct neigh_table *tbl = seq->private;
|
struct neigh_table *tbl = PDE_DATA(file_inode(seq->file));
|
||||||
int cpu;
|
int cpu;
|
||||||
|
|
||||||
if (*pos == 0)
|
if (*pos == 0)
|
||||||
@@ -2803,7 +2803,7 @@ static void *neigh_stat_seq_start(struct seq_file *seq, loff_t *pos)
|
|||||||
|
|
||||||
static void *neigh_stat_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
static void *neigh_stat_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||||
{
|
{
|
||||||
struct neigh_table *tbl = seq->private;
|
struct neigh_table *tbl = PDE_DATA(file_inode(seq->file));
|
||||||
int cpu;
|
int cpu;
|
||||||
|
|
||||||
for (cpu = *pos; cpu < nr_cpu_ids; ++cpu) {
|
for (cpu = *pos; cpu < nr_cpu_ids; ++cpu) {
|
||||||
@@ -2822,7 +2822,7 @@ static void neigh_stat_seq_stop(struct seq_file *seq, void *v)
|
|||||||
|
|
||||||
static int neigh_stat_seq_show(struct seq_file *seq, void *v)
|
static int neigh_stat_seq_show(struct seq_file *seq, void *v)
|
||||||
{
|
{
|
||||||
struct neigh_table *tbl = seq->private;
|
struct neigh_table *tbl = PDE_DATA(file_inode(seq->file));
|
||||||
struct neigh_statistics *st = v;
|
struct neigh_statistics *st = v;
|
||||||
|
|
||||||
if (v == SEQ_START_TOKEN) {
|
if (v == SEQ_START_TOKEN) {
|
||||||
@@ -2861,25 +2861,6 @@ static const struct seq_operations neigh_stat_seq_ops = {
|
|||||||
.stop = neigh_stat_seq_stop,
|
.stop = neigh_stat_seq_stop,
|
||||||
.show = neigh_stat_seq_show,
|
.show = neigh_stat_seq_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int neigh_stat_seq_open(struct inode *inode, struct file *file)
|
|
||||||
{
|
|
||||||
int ret = seq_open(file, &neigh_stat_seq_ops);
|
|
||||||
|
|
||||||
if (!ret) {
|
|
||||||
struct seq_file *sf = file->private_data;
|
|
||||||
sf->private = PDE_DATA(inode);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct file_operations neigh_stat_seq_fops = {
|
|
||||||
.open = neigh_stat_seq_open,
|
|
||||||
.read = seq_read,
|
|
||||||
.llseek = seq_lseek,
|
|
||||||
.release = seq_release,
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
static inline size_t neigh_nlmsg_size(void)
|
static inline size_t neigh_nlmsg_size(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user