From: "Eric W. Biederman" <[email protected]> Today mountinfo displays a very unhelpful "/" for nsfs files. Add a show_path method returning the same string as ns_dname. This results in a bind mount of /proc/<pid>/ns/net showing up in /proc/<pid>/mountinfo as "net:[1234...]" instead of "/".
Signed-off-by: "Eric W. Biederman" <[email protected]> (cherry picked from commit 75509fd88fbd580c793780b0001c71c3510f2726) https://jira.sw.ru/browse/PSBM-102357 Signed-off-by: Pavel Tikhomirov <[email protected]> --- fs/nsfs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fs/nsfs.c b/fs/nsfs.c index ade35cf01d0a..4d12343b3d0a 100644 --- a/fs/nsfs.c +++ b/fs/nsfs.c @@ -4,6 +4,7 @@ #include <linux/proc_ns.h> #include <linux/magic.h> #include <linux/ktime.h> +#include <linux/seq_file.h> #include <linux/user_namespace.h> #include <linux/nsfs.h> @@ -218,9 +219,18 @@ struct file *proc_ns_fget(int fd) return ERR_PTR(-EINVAL); } +static int nsfs_show_path(struct seq_file *seq, struct dentry *dentry) +{ + struct inode *inode = d_inode(dentry); + const struct proc_ns_operations *ns_ops = dentry->d_fsdata; + + return seq_printf(seq, "%s:[%lu]", ns_ops->name, inode->i_ino); +} + static const struct super_operations nsfs_ops = { .statfs = simple_statfs, .evict_inode = nsfs_evict, + .show_path = nsfs_show_path, }; static struct dentry *nsfs_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) -- 2.24.1 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
