Commit d66a0520cb46fb4f86b070e5f1926f6e53f23b38

Authored by Rob Jones
Committed by Linus Torvalds
1 parent bf77b94c99

ipc/util.c: use __seq_open_private() instead of seq_open()

Using __seq_open_private() removes boilerplate code from
sysvipc_proc_open().

The resultant code is shorter and easier to follow.

However, please note that __seq_open_private() call kzalloc() rather than
kmalloc() which may affect timing due to the memory initialisation
overhead.

Signed-off-by: Rob Jones <rob.jones@codethink.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 4 additions and 16 deletions Side-by-side Diff

... ... @@ -892,28 +892,16 @@
892 892  
893 893 static int sysvipc_proc_open(struct inode *inode, struct file *file)
894 894 {
895   - int ret;
896   - struct seq_file *seq;
897 895 struct ipc_proc_iter *iter;
898 896  
899   - ret = -ENOMEM;
900   - iter = kmalloc(sizeof(*iter), GFP_KERNEL);
  897 + iter = __seq_open_private(file, &sysvipc_proc_seqops, sizeof(*iter));
901 898 if (!iter)
902   - goto out;
  899 + return -ENOMEM;
903 900  
904   - ret = seq_open(file, &sysvipc_proc_seqops);
905   - if (ret) {
906   - kfree(iter);
907   - goto out;
908   - }
909   -
910   - seq = file->private_data;
911   - seq->private = iter;
912   -
913 901 iter->iface = PDE_DATA(inode);
914 902 iter->ns = get_ipc_ns(current->nsproxy->ipc_ns);
915   -out:
916   - return ret;
  903 +
  904 + return 0;
917 905 }
918 906  
919 907 static int sysvipc_proc_release(struct inode *inode, struct file *file)