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

Commit 04015e3f authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

proc: don't detour through seq->private to get the inode



Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 76f668be
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -677,20 +677,22 @@ get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)

static int children_seq_show(struct seq_file *seq, void *v)
{
	seq_printf(seq, "%d ", pid_nr_ns(v, proc_pid_ns(seq->private)));
	struct inode *inode = file_inode(seq->file);

	seq_printf(seq, "%d ", pid_nr_ns(v, proc_pid_ns(inode)));
	return 0;
}

static void *children_seq_start(struct seq_file *seq, loff_t *pos)
{
	return get_children_pid(seq->private, NULL, *pos);
	return get_children_pid(file_inode(seq->file), NULL, *pos);
}

static void *children_seq_next(struct seq_file *seq, void *v, loff_t *pos)
{
	struct pid *pid;

	pid = get_children_pid(seq->private, v, *pos + 1);
	pid = get_children_pid(file_inode(seq->file), v, *pos + 1);
	put_pid(v);

	++*pos;
@@ -711,17 +713,7 @@ static const struct seq_operations children_seq_ops = {

static int children_seq_open(struct inode *inode, struct file *file)
{
	struct seq_file *m;
	int ret;

	ret = seq_open(file, &children_seq_ops);
	if (ret)
		return ret;

	m = file->private_data;
	m->private = inode;

	return ret;
	return seq_open(file, &children_seq_ops);
}

const struct file_operations proc_tid_children_operations = {