| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Daniel Rosenberg <drosen@google.com> |
| Date: Tue, 16 Jul 2019 18:09:39 -0700 |
| Subject: ANDROID: Add show_options2 to view private mount data |
| |
| Exposes private fs data via show_options2 |
| |
| Bug: 120446149 |
| Change-Id: I2d1c06fae274eeac03ac1924ef162f7bbb2f29d0 |
| Signed-off-by: Daniel Rosenberg <drosen@google.com> |
| --- |
| fs/proc_namespace.c | 8 ++++++-- |
| include/linux/fs.h | 1 + |
| 2 files changed, 7 insertions(+), 2 deletions(-) |
| |
| diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c |
| index 273ee82d8aa9..5b8d065fa83c 100644 |
| --- a/fs/proc_namespace.c |
| +++ b/fs/proc_namespace.c |
| @@ -121,7 +121,9 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt) |
| if (err) |
| goto out; |
| show_mnt_opts(m, mnt); |
| - if (sb->s_op->show_options) |
| + if (sb->s_op->show_options2) |
| + err = sb->s_op->show_options2(mnt, m, mnt_path.dentry); |
| + else if (sb->s_op->show_options) |
| err = sb->s_op->show_options(m, mnt_path.dentry); |
| seq_puts(m, " 0 0\n"); |
| out: |
| @@ -183,7 +185,9 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt) |
| err = show_sb_opts(m, sb); |
| if (err) |
| goto out; |
| - if (sb->s_op->show_options) |
| + if (sb->s_op->show_options2) { |
| + err = sb->s_op->show_options2(mnt, m, mnt->mnt_root); |
| + } else if (sb->s_op->show_options) |
| err = sb->s_op->show_options(m, mnt->mnt_root); |
| seq_putc(m, '\n'); |
| out: |
| diff --git a/include/linux/fs.h b/include/linux/fs.h |
| index 777772874b1f..21a2632b3213 100644 |
| --- a/include/linux/fs.h |
| +++ b/include/linux/fs.h |
| @@ -1972,6 +1972,7 @@ struct super_operations { |
| void (*umount_begin) (struct super_block *); |
| |
| int (*show_options)(struct seq_file *, struct dentry *); |
| + int (*show_options2)(struct vfsmount *,struct seq_file *, struct dentry *); |
| int (*show_devname)(struct seq_file *, struct dentry *); |
| int (*show_path)(struct seq_file *, struct dentry *); |
| int (*show_stats)(struct seq_file *, struct dentry *); |