Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d66a0520 authored by Rob Jones's avatar Rob Jones Committed by Linus Torvalds
Browse files

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: default avatarRob Jones <rob.jones@codethink.co.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent bf77b94c
Loading
Loading
Loading
Loading
+4 −16
Original line number Diff line number Diff line
@@ -892,28 +892,16 @@ static const struct seq_operations sysvipc_proc_seqops = {

static int sysvipc_proc_open(struct inode *inode, struct file *file)
{
	int ret;
	struct seq_file *seq;
	struct ipc_proc_iter *iter;

	ret = -ENOMEM;
	iter = kmalloc(sizeof(*iter), GFP_KERNEL);
	iter = __seq_open_private(file, &sysvipc_proc_seqops, sizeof(*iter));
	if (!iter)
		goto out;

	ret = seq_open(file, &sysvipc_proc_seqops);
	if (ret) {
		kfree(iter);
		goto out;
	}

	seq = file->private_data;
	seq->private = iter;
		return -ENOMEM;

	iter->iface = PDE_DATA(inode);
	iter->ns    = get_ipc_ns(current->nsproxy->ipc_ns);
out:
	return ret;

	return 0;
}

static int sysvipc_proc_release(struct inode *inode, struct file *file)