aboutsummaryrefslogtreecommitdiffstats
path: root/net/netlink/af_netlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/netlink/af_netlink.c')
-rw-r--r--net/netlink/af_netlink.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 3ef32825da71..f934f54fbfd5 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1845,27 +1845,18 @@ static const struct seq_operations netlink_seq_ops = {
1845 1845
1846static int netlink_seq_open(struct inode *inode, struct file *file) 1846static int netlink_seq_open(struct inode *inode, struct file *file)
1847{ 1847{
1848 struct seq_file *seq;
1849 struct nl_seq_iter *iter; 1848 struct nl_seq_iter *iter;
1850 int err;
1851 1849
1852 iter = kzalloc(sizeof(*iter), GFP_KERNEL); 1850 iter = __seq_open_private(file, &netlink_seq_ops, sizeof(*iter));
1853 if (!iter) 1851 if (!iter)
1854 return -ENOMEM; 1852 return -ENOMEM;
1855 1853
1856 err = seq_open(file, &netlink_seq_ops);
1857 if (err) {
1858 kfree(iter);
1859 return err;
1860 }
1861
1862 seq = file->private_data;
1863 seq->private = iter;
1864 iter->net = get_proc_net(inode); 1854 iter->net = get_proc_net(inode);
1865 if (!iter->net) { 1855 if (!iter->net) {
1866 seq_release_private(inode, file); 1856 seq_release_private(inode, file);
1867 return -ENXIO; 1857 return -ENXIO;
1868 } 1858 }
1859
1869 return 0; 1860 return 0;
1870} 1861}
1871 1862