diff options
author | Rob Jones <rob.jones@codethink.co.uk> | 2014-09-19 06:27:51 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-09-26 12:42:29 -0400 |
commit | 772476df7047db87ac4174d1ed396512912d23bf (patch) | |
tree | 7be8957012a3382252d881f1007e59c83f7a7897 | |
parent | 84d7fce693884897c6196cc98228a2ad56ae2a9a (diff) |
net/netfilter/x_tables.c: use __seq_open_private()
Reduce boilerplate code by using __seq_open_private() instead of seq_open()
in xt_match_open() and xt_target_open().
Signed-off-by: Rob Jones <rob.jones@codethink.co.uk>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | net/netfilter/x_tables.c | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 272ae4d6fdf4..133eb4772f12 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c | |||
@@ -1101,22 +1101,11 @@ static const struct seq_operations xt_match_seq_ops = { | |||
1101 | 1101 | ||
1102 | static int xt_match_open(struct inode *inode, struct file *file) | 1102 | static int xt_match_open(struct inode *inode, struct file *file) |
1103 | { | 1103 | { |
1104 | struct seq_file *seq; | ||
1105 | struct nf_mttg_trav *trav; | 1104 | struct nf_mttg_trav *trav; |
1106 | int ret; | 1105 | trav = __seq_open_private(file, &xt_match_seq_ops, sizeof(*trav)); |
1107 | 1106 | if (!trav) | |
1108 | trav = kmalloc(sizeof(*trav), GFP_KERNEL); | ||
1109 | if (trav == NULL) | ||
1110 | return -ENOMEM; | 1107 | return -ENOMEM; |
1111 | 1108 | ||
1112 | ret = seq_open(file, &xt_match_seq_ops); | ||
1113 | if (ret < 0) { | ||
1114 | kfree(trav); | ||
1115 | return ret; | ||
1116 | } | ||
1117 | |||
1118 | seq = file->private_data; | ||
1119 | seq->private = trav; | ||
1120 | trav->nfproto = (unsigned long)PDE_DATA(inode); | 1109 | trav->nfproto = (unsigned long)PDE_DATA(inode); |
1121 | return 0; | 1110 | return 0; |
1122 | } | 1111 | } |
@@ -1165,22 +1154,11 @@ static const struct seq_operations xt_target_seq_ops = { | |||
1165 | 1154 | ||
1166 | static int xt_target_open(struct inode *inode, struct file *file) | 1155 | static int xt_target_open(struct inode *inode, struct file *file) |
1167 | { | 1156 | { |
1168 | struct seq_file *seq; | ||
1169 | struct nf_mttg_trav *trav; | 1157 | struct nf_mttg_trav *trav; |
1170 | int ret; | 1158 | trav = __seq_open_private(file, &xt_target_seq_ops, sizeof(*trav)); |
1171 | 1159 | if (!trav) | |
1172 | trav = kmalloc(sizeof(*trav), GFP_KERNEL); | ||
1173 | if (trav == NULL) | ||
1174 | return -ENOMEM; | 1160 | return -ENOMEM; |
1175 | 1161 | ||
1176 | ret = seq_open(file, &xt_target_seq_ops); | ||
1177 | if (ret < 0) { | ||
1178 | kfree(trav); | ||
1179 | return ret; | ||
1180 | } | ||
1181 | |||
1182 | seq = file->private_data; | ||
1183 | seq->private = trav; | ||
1184 | trav->nfproto = (unsigned long)PDE_DATA(inode); | 1162 | trav->nfproto = (unsigned long)PDE_DATA(inode); |
1185 | return 0; | 1163 | return 0; |
1186 | } | 1164 | } |