]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
neigh: switch to proc_create_seq_data
authorChristoph Hellwig <hch@lst.de>
Sun, 15 Apr 2018 08:16:41 +0000 (10:16 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 16 May 2018 05:24:30 +0000 (07:24 +0200)
And use proc private data directly instead of doing a detour
through seq->private.

Signed-off-by: Christoph Hellwig <hch@lst.de>
net/core/neighbour.c

index ce519861be5992b504c519ca36edb05d2ecc02b7..1fb43bff417d7a2c3182167425a88aa0f5e1a612 100644 (file)
@@ -59,7 +59,7 @@ static int pneigh_ifdown_and_unlock(struct neigh_table *tbl,
                                    struct net_device *dev);
 
 #ifdef CONFIG_PROC_FS
-static const struct file_operations neigh_stat_seq_fops;
+static const struct seq_operations neigh_stat_seq_ops;
 #endif
 
 /*
@@ -1558,8 +1558,8 @@ void neigh_table_init(int index, struct neigh_table *tbl)
                panic("cannot create neighbour cache statistics");
 
 #ifdef CONFIG_PROC_FS
-       if (!proc_create_data(tbl->id, 0, init_net.proc_net_stat,
-                             &neigh_stat_seq_fops, tbl))
+       if (!proc_create_seq_data(tbl->id, 0, init_net.proc_net_stat,
+                             &neigh_stat_seq_ops, tbl))
                panic("cannot create neighbour proc dir entry");
 #endif
 
@@ -2786,7 +2786,7 @@ EXPORT_SYMBOL(neigh_seq_stop);
 
 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;
 
        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)
 {
-       struct neigh_table *tbl = seq->private;
+       struct neigh_table *tbl = PDE_DATA(file_inode(seq->file));
        int 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)
 {
-       struct neigh_table *tbl = seq->private;
+       struct neigh_table *tbl = PDE_DATA(file_inode(seq->file));
        struct neigh_statistics *st = v;
 
        if (v == SEQ_START_TOKEN) {
@@ -2861,25 +2861,6 @@ static const struct seq_operations neigh_stat_seq_ops = {
        .stop   = neigh_stat_seq_stop,
        .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 */
 
 static inline size_t neigh_nlmsg_size(void)