mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
[patch 6/7] vfs: mountinfo: add /proc/<pid>/mountinfo
[[email protected]] rewrite and split big patch into managable chunks /proc/mounts in its current form lacks important information: - propagation state - root of mount for bind mounts - the st_dev value used within the filesystem - identifier for each mount and it's parent It also suffers from the following problems: - not easily extendable - ambiguity of mountpoints within a chrooted environment - doesn't distinguish between filesystem dependent and independent options - doesn't distinguish between per mount and per super block options This patch introduces /proc/<pid>/mountinfo which attempts to address all these deficiencies. Code shared between /proc/<pid>/mounts and /proc/<pid>/mountinfo is extracted into separate functions. Thanks to Al Viro for the help in getting the design right. Signed-off-by: Ram Pai <[email protected]> Signed-off-by: Miklos Szeredi <[email protected]> Signed-off-by: Al Viro <[email protected]>
This commit is contained in:
parent
a1a2c409b6
commit
2d4d4864ac
4 changed files with 144 additions and 23 deletions
|
|
@ -604,6 +604,19 @@ static const struct file_operations proc_mounts_operations = {
|
|||
.poll = mounts_poll,
|
||||
};
|
||||
|
||||
static int mountinfo_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return mounts_open_common(inode, file, &mountinfo_op);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_mountinfo_operations = {
|
||||
.open = mountinfo_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = mounts_release,
|
||||
.poll = mounts_poll,
|
||||
};
|
||||
|
||||
static int mountstats_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return mounts_open_common(inode, file, &mountstats_op);
|
||||
|
|
@ -2303,6 +2316,7 @@ static const struct pid_entry tgid_base_stuff[] = {
|
|||
LNK("root", root),
|
||||
LNK("exe", exe),
|
||||
REG("mounts", S_IRUGO, mounts),
|
||||
REG("mountinfo", S_IRUGO, mountinfo),
|
||||
REG("mountstats", S_IRUSR, mountstats),
|
||||
#ifdef CONFIG_PROC_PAGE_MONITOR
|
||||
REG("clear_refs", S_IWUSR, clear_refs),
|
||||
|
|
@ -2635,6 +2649,7 @@ static const struct pid_entry tid_base_stuff[] = {
|
|||
LNK("root", root),
|
||||
LNK("exe", exe),
|
||||
REG("mounts", S_IRUGO, mounts),
|
||||
REG("mountinfo", S_IRUGO, mountinfo),
|
||||
#ifdef CONFIG_PROC_PAGE_MONITOR
|
||||
REG("clear_refs", S_IWUSR, clear_refs),
|
||||
REG("smaps", S_IRUGO, smaps),
|
||||
|
|
|
|||
Loading…
Reference in a new issue