summaryrefslogtreecommitdiffstats
path: root/fs/proc
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2018-05-16 07:21:53 +0200
committerChristoph Hellwig <hch@lst.de>2018-05-16 07:23:35 +0200
commit04015e3fa235eba28cc058c73d7d346c1bcffee8 (patch)
tree5b96ade259cf40a9795513f2be70787bdf013a63 /fs/proc
parent76f668be1e8e87d235fbd50037f50fdde948b46d (diff)
downloadlinux-04015e3fa235eba28cc058c73d7d346c1bcffee8.tar.bz2
proc: don't detour through seq->private to get the inode
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/proc')
-rw-r--r--fs/proc/array.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 911f66924d81..4a8e413bf59b 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -677,20 +677,22 @@ out:
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 = {