diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2009-04-06 22:00:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 11:31:03 -0400 |
commit | 6260a4b0521a41189b2c2a8119096c1e21dbdf2c (patch) | |
tree | 90e3c16cfde493503292b128fc3e275d58ccb037 /fs/proc | |
parent | fafd688e4c0c34da0f3de909881117d374e4c7af (diff) |
/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>
Diffstat (limited to 'fs/proc')
-rw-r--r-- | fs/proc/task_mmu.c | 4 | ||||
-rw-r--r-- | fs/proc/task_nommu.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index b0ae0be4801f..39e4ad4f59f4 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
@@ -204,6 +204,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | |||
204 | struct file *file = vma->vm_file; | 204 | struct file *file = vma->vm_file; |
205 | int flags = vma->vm_flags; | 205 | int flags = vma->vm_flags; |
206 | unsigned long ino = 0; | 206 | unsigned long ino = 0; |
207 | unsigned long long pgoff = 0; | ||
207 | dev_t dev = 0; | 208 | dev_t dev = 0; |
208 | int len; | 209 | int len; |
209 | 210 | ||
@@ -211,6 +212,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | |||
211 | struct inode *inode = vma->vm_file->f_path.dentry->d_inode; | 212 | struct inode *inode = vma->vm_file->f_path.dentry->d_inode; |
212 | dev = inode->i_sb->s_dev; | 213 | dev = inode->i_sb->s_dev; |
213 | ino = inode->i_ino; | 214 | ino = inode->i_ino; |
215 | pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; | ||
214 | } | 216 | } |
215 | 217 | ||
216 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", | 218 | 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) | |||
220 | flags & VM_WRITE ? 'w' : '-', | 222 | flags & VM_WRITE ? 'w' : '-', |
221 | flags & VM_EXEC ? 'x' : '-', | 223 | flags & VM_EXEC ? 'x' : '-', |
222 | flags & VM_MAYSHARE ? 's' : 'p', | 224 | flags & VM_MAYSHARE ? 's' : 'p', |
223 | ((loff_t)vma->vm_pgoff) << PAGE_SHIFT, | 225 | pgoff, |
224 | MAJOR(dev), MINOR(dev), ino, &len); | 226 | MAJOR(dev), MINOR(dev), ino, &len); |
225 | 227 | ||
226 | /* | 228 | /* |
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c index 863464d5519c..12c20377772d 100644 --- a/fs/proc/task_nommu.c +++ b/fs/proc/task_nommu.c | |||
@@ -126,6 +126,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma) | |||
126 | struct file *file; | 126 | struct file *file; |
127 | dev_t dev = 0; | 127 | dev_t dev = 0; |
128 | int flags, len; | 128 | int flags, len; |
129 | unsigned long long pgoff = 0; | ||
129 | 130 | ||
130 | flags = vma->vm_flags; | 131 | flags = vma->vm_flags; |
131 | file = vma->vm_file; | 132 | file = vma->vm_file; |
@@ -134,6 +135,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma) | |||
134 | struct inode *inode = vma->vm_file->f_path.dentry->d_inode; | 135 | struct inode *inode = vma->vm_file->f_path.dentry->d_inode; |
135 | dev = inode->i_sb->s_dev; | 136 | dev = inode->i_sb->s_dev; |
136 | ino = inode->i_ino; | 137 | ino = inode->i_ino; |
138 | pgoff = (loff_t)vma->pg_off << PAGE_SHIFT; | ||
137 | } | 139 | } |
138 | 140 | ||
139 | seq_printf(m, | 141 | seq_printf(m, |
@@ -144,7 +146,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma) | |||
144 | flags & VM_WRITE ? 'w' : '-', | 146 | flags & VM_WRITE ? 'w' : '-', |
145 | flags & VM_EXEC ? 'x' : '-', | 147 | flags & VM_EXEC ? 'x' : '-', |
146 | flags & VM_MAYSHARE ? flags & VM_SHARED ? 'S' : 's' : 'p', | 148 | flags & VM_MAYSHARE ? flags & VM_SHARED ? 'S' : 's' : 'p', |
147 | (unsigned long long) vma->vm_pgoff << PAGE_SHIFT, | 149 | pgoff, |
148 | MAJOR(dev), MINOR(dev), ino, &len); | 150 | MAJOR(dev), MINOR(dev), ino, &len); |
149 | 151 | ||
150 | if (file) { | 152 | if (file) { |