netfilter/x_tables: switch to proc_create_seq_private
authorChristoph Hellwig <hch@lst.de>
Sun, 15 Apr 2018 08:36:56 +0000 (10:36 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 16 May 2018 05:24:30 +0000 (07:24 +0200)
And remove proc boilerplate code.

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

index 344dd01..0e314f9 100644 (file)
@@ -1648,22 +1648,6 @@ static const struct seq_operations xt_match_seq_ops = {
        .show   = xt_match_seq_show,
 };
 
-static int xt_match_open(struct inode *inode, struct file *file)
-{
-       struct nf_mttg_trav *trav;
-       trav = __seq_open_private(file, &xt_match_seq_ops, sizeof(*trav));
-       if (!trav)
-               return -ENOMEM;
-       return 0;
-}
-
-static const struct file_operations xt_match_ops = {
-       .open    = xt_match_open,
-       .read    = seq_read,
-       .llseek  = seq_lseek,
-       .release = seq_release_private,
-};
-
 static void *xt_target_seq_start(struct seq_file *seq, loff_t *pos)
 {
        return xt_mttg_seq_start(seq, pos, true);
@@ -1698,22 +1682,6 @@ static const struct seq_operations xt_target_seq_ops = {
        .show   = xt_target_seq_show,
 };
 
-static int xt_target_open(struct inode *inode, struct file *file)
-{
-       struct nf_mttg_trav *trav;
-       trav = __seq_open_private(file, &xt_target_seq_ops, sizeof(*trav));
-       if (!trav)
-               return -ENOMEM;
-       return 0;
-}
-
-static const struct file_operations xt_target_ops = {
-       .open    = xt_target_open,
-       .read    = seq_read,
-       .llseek  = seq_lseek,
-       .release = seq_release_private,
-};
-
 #define FORMAT_TABLES  "_tables_names"
 #define        FORMAT_MATCHES  "_tables_matches"
 #define FORMAT_TARGETS         "_tables_targets"
@@ -1787,8 +1755,9 @@ int xt_proto_init(struct net *net, u_int8_t af)
 
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_MATCHES, sizeof(buf));
-       proc = proc_create_data(buf, 0440, net->proc_net, &xt_match_ops,
-                               (void *)(unsigned long)af);
+       proc = proc_create_seq_private(buf, 0440, net->proc_net,
+                       &xt_match_seq_ops, sizeof(struct nf_mttg_trav),
+                       (void *)(unsigned long)af);
        if (!proc)
                goto out_remove_tables;
        if (uid_valid(root_uid) && gid_valid(root_gid))
@@ -1796,8 +1765,9 @@ int xt_proto_init(struct net *net, u_int8_t af)
 
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_TARGETS, sizeof(buf));
-       proc = proc_create_data(buf, 0440, net->proc_net, &xt_target_ops,
-                               (void *)(unsigned long)af);
+       proc = proc_create_seq_private(buf, 0440, net->proc_net,
+                        &xt_target_seq_ops, sizeof(struct nf_mttg_trav),
+                        (void *)(unsigned long)af);
        if (!proc)
                goto out_remove_matches;
        if (uid_valid(root_uid) && gid_valid(root_gid))