|
@@ -2379,25 +2379,8 @@ static const struct seq_operations fib_trie_seq_ops = {
|
|
|
|
|
|
static int fib_trie_seq_open(struct inode *inode, struct file *file)
|
|
|
{
|
|
|
- struct seq_file *seq;
|
|
|
- int rc = -ENOMEM;
|
|
|
- struct fib_trie_iter *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
|
|
-
|
|
|
- if (!s)
|
|
|
- goto out;
|
|
|
-
|
|
|
- rc = seq_open(file, &fib_trie_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;
|
|
|
+ return seq_open_private(file, &fib_trie_seq_ops,
|
|
|
+ sizeof(struct fib_trie_iter));
|
|
|
}
|
|
|
|
|
|
static const struct file_operations fib_trie_fops = {
|
|
@@ -2500,25 +2483,8 @@ static const struct seq_operations fib_route_seq_ops = {
|
|
|
|
|
|
static int fib_route_seq_open(struct inode *inode, struct file *file)
|
|
|
{
|
|
|
- struct seq_file *seq;
|
|
|
- int rc = -ENOMEM;
|
|
|
- struct fib_trie_iter *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
|
|
-
|
|
|
- if (!s)
|
|
|
- goto out;
|
|
|
-
|
|
|
- rc = seq_open(file, &fib_route_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;
|
|
|
+ return seq_open_private(file, &fib_route_seq_ops,
|
|
|
+ sizeof(struct fib_trie_iter));
|
|
|
}
|
|
|
|
|
|
static const struct file_operations fib_route_fops = {
|