diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-02-29 14:38:24 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-29 14:38:24 -0500 |
commit | c20932d2c9ba24838a102ac501bf7371b0fe0794 (patch) | |
tree | 03bfb8c698936f451a267cb5e28d38b482a59add | |
parent | 9a8c09e73bf6c8b1720b1172cdcabb14fc823cf8 (diff) |
[ATALK/DECNET]: Use seq_open_private in appletalk and decnet.
These two also perform manual seq_open_private, so patch them both at
once. But unlike ATM code, these already use the seq_release_private,
so I splitted this patch from the previous one.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/appletalk/aarp.c | 21 | ||||
-rw-r--r-- | net/decnet/af_decnet.c | 21 |
2 files changed, 4 insertions, 38 deletions
diff --git a/net/appletalk/aarp.c b/net/appletalk/aarp.c index 18058bbc7962..61166f66479f 100644 --- a/net/appletalk/aarp.c +++ b/net/appletalk/aarp.c | |||
@@ -1033,25 +1033,8 @@ static const struct seq_operations aarp_seq_ops = { | |||
1033 | 1033 | ||
1034 | static int aarp_seq_open(struct inode *inode, struct file *file) | 1034 | static int aarp_seq_open(struct inode *inode, struct file *file) |
1035 | { | 1035 | { |
1036 | struct seq_file *seq; | 1036 | return seq_open_private(file, &aarp_seq_ops, |
1037 | int rc = -ENOMEM; | 1037 | sizeof(struct aarp_iter_state)); |
1038 | struct aarp_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL); | ||
1039 | |||
1040 | if (!s) | ||
1041 | goto out; | ||
1042 | |||
1043 | rc = seq_open(file, &aarp_seq_ops); | ||
1044 | if (rc) | ||
1045 | goto out_kfree; | ||
1046 | |||
1047 | seq = file->private_data; | ||
1048 | seq->private = s; | ||
1049 | memset(s, 0, sizeof(*s)); | ||
1050 | out: | ||
1051 | return rc; | ||
1052 | out_kfree: | ||
1053 | kfree(s); | ||
1054 | goto out; | ||
1055 | } | 1038 | } |
1056 | 1039 | ||
1057 | const struct file_operations atalk_seq_arp_fops = { | 1040 | const struct file_operations atalk_seq_arp_fops = { |
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index acd48ee522d6..23fd95a7ad15 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c | |||
@@ -2320,25 +2320,8 @@ static const struct seq_operations dn_socket_seq_ops = { | |||
2320 | 2320 | ||
2321 | static int dn_socket_seq_open(struct inode *inode, struct file *file) | 2321 | static int dn_socket_seq_open(struct inode *inode, struct file *file) |
2322 | { | 2322 | { |
2323 | struct seq_file *seq; | 2323 | return seq_open_private(file, &dn_socket_seq_ops, |
2324 | int rc = -ENOMEM; | 2324 | sizeof(struct dn_iter_state)); |
2325 | struct dn_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL); | ||
2326 | |||
2327 | if (!s) | ||
2328 | goto out; | ||
2329 | |||
2330 | rc = seq_open(file, &dn_socket_seq_ops); | ||
2331 | if (rc) | ||
2332 | goto out_kfree; | ||
2333 | |||
2334 | seq = file->private_data; | ||
2335 | seq->private = s; | ||
2336 | memset(s, 0, sizeof(*s)); | ||
2337 | out: | ||
2338 | return rc; | ||
2339 | out_kfree: | ||
2340 | kfree(s); | ||
2341 | goto out; | ||
2342 | } | 2325 | } |
2343 | 2326 | ||
2344 | static const struct file_operations dn_socket_seq_fops = { | 2327 | static const struct file_operations dn_socket_seq_fops = { |