|
@@ -892,28 +892,16 @@ static const struct seq_operations sysvipc_proc_seqops = {
|
|
|
|
|
|
static int sysvipc_proc_open(struct inode *inode, struct file *file)
|
|
static int sysvipc_proc_open(struct inode *inode, struct file *file)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
- struct seq_file *seq;
|
|
|
|
struct ipc_proc_iter *iter;
|
|
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)
|
|
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->iface = PDE_DATA(inode);
|
|
iter->ns = get_ipc_ns(current->nsproxy->ipc_ns);
|
|
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)
|
|
static int sysvipc_proc_release(struct inode *inode, struct file *file)
|