mirror of https://gitee.com/openkylin/linux.git
/proc/pid/maps: don't show pgoff of pure ANON VMAs
Recently, it's argued that what proc/pid/maps shows is ugly when a 32bit binary runs on 64bit host. /proc/pid/maps outputs vma's pgoff member but vma->pgoff is of no use information is the vma is for ANON. With this patch, /proc/pid/maps shows just 0 if no file backing store. [akpm@linux-foundation.org: coding-style fixes] [kamezawa.hiroyu@jp.fujitsu.com: coding-style fixes] Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Mike Waychison <mikew@google.com> Reported-by: Ying Han <yinghan@google.com> Cc: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
fafd688e4c
commit
6260a4b052
|
@ -204,6 +204,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
|
|||
struct file *file = vma->vm_file;
|
||||
int flags = vma->vm_flags;
|
||||
unsigned long ino = 0;
|
||||
unsigned long long pgoff = 0;
|
||||
dev_t dev = 0;
|
||||
int len;
|
||||
|
||||
|
@ -211,6 +212,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
|
|||
struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
|
||||
}
|
||||
|
||||
seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
|
||||
|
@ -220,7 +222,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
|
|||
flags & VM_WRITE ? 'w' : '-',
|
||||
flags & VM_EXEC ? 'x' : '-',
|
||||
flags & VM_MAYSHARE ? 's' : 'p',
|
||||
((loff_t)vma->vm_pgoff) << PAGE_SHIFT,
|
||||
pgoff,
|
||||
MAJOR(dev), MINOR(dev), ino, &len);
|
||||
|
||||
/*
|
||||
|
|
|
@ -126,6 +126,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
|
|||
struct file *file;
|
||||
dev_t dev = 0;
|
||||
int flags, len;
|
||||
unsigned long long pgoff = 0;
|
||||
|
||||
flags = vma->vm_flags;
|
||||
file = vma->vm_file;
|
||||
|
@ -134,6 +135,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
|
|||
struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
pgoff = (loff_t)vma->pg_off << PAGE_SHIFT;
|
||||
}
|
||||
|
||||
seq_printf(m,
|
||||
|
@ -144,7 +146,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
|
|||
flags & VM_WRITE ? 'w' : '-',
|
||||
flags & VM_EXEC ? 'x' : '-',
|
||||
flags & VM_MAYSHARE ? flags & VM_SHARED ? 'S' : 's' : 'p',
|
||||
(unsigned long long) vma->vm_pgoff << PAGE_SHIFT,
|
||||
pgoff,
|
||||
MAJOR(dev), MINOR(dev), ino, &len);
|
||||
|
||||
if (file) {
|
||||
|
|
Loading…
Reference in New Issue