[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>
This commit is contained in:
parent
9a8c09e73b
commit
c20932d2c9
|
@ -1033,25 +1033,8 @@ static const struct seq_operations aarp_seq_ops = {
|
||||||
|
|
||||||
static int aarp_seq_open(struct inode *inode, struct file *file)
|
static int aarp_seq_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
struct seq_file *seq;
|
return seq_open_private(file, &aarp_seq_ops,
|
||||||
int rc = -ENOMEM;
|
sizeof(struct aarp_iter_state));
|
||||||
struct aarp_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
|
||||||
|
|
||||||
if (!s)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
rc = seq_open(file, &aarp_seq_ops);
|
|
||||||
if (rc)
|
|
||||||
goto out_kfree;
|
|
||||||
|
|
||||||
seq = file->private_data;
|
|
||||||
seq->private = s;
|
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
|
||||||
return rc;
|
|
||||||
out_kfree:
|
|
||||||
kfree(s);
|
|
||||||
goto out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct file_operations atalk_seq_arp_fops = {
|
const struct file_operations atalk_seq_arp_fops = {
|
||||||
|
|
|
@ -2320,25 +2320,8 @@ static const struct seq_operations dn_socket_seq_ops = {
|
||||||
|
|
||||||
static int dn_socket_seq_open(struct inode *inode, struct file *file)
|
static int dn_socket_seq_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
struct seq_file *seq;
|
return seq_open_private(file, &dn_socket_seq_ops,
|
||||||
int rc = -ENOMEM;
|
sizeof(struct dn_iter_state));
|
||||||
struct dn_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
|
||||||
|
|
||||||
if (!s)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
rc = seq_open(file, &dn_socket_seq_ops);
|
|
||||||
if (rc)
|
|
||||||
goto out_kfree;
|
|
||||||
|
|
||||||
seq = file->private_data;
|
|
||||||
seq->private = s;
|
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
|
||||||
return rc;
|
|
||||||
out_kfree:
|
|
||||||
kfree(s);
|
|
||||||
goto out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations dn_socket_seq_fops = {
|
static const struct file_operations dn_socket_seq_fops = {
|
||||||
|
|
Loading…
Reference in New Issue