--- linux-2.6.13-rc2-mm1/fs/proc/task_mmu.c 2005-07-12 06:30:05.000000000 +0000 +++ linux-2.6.13-rc2-mm1-pb/fs/proc/task_mmu.c 2005-07-12 07:29:51.000000000 +0000 @@ -121,9 +121,9 @@ * Print the dentry name for named mappings, and a * special [heap] marker for the heap: */ - if (vma->vm_file) { + if (file) { pad_len_spaces(m, len); - seq_path(m, file->f_vfsmnt, file->f_dentry, ""); + seq_path(m, file->f_vfsmnt, file->f_dentry, "\n"); } else { if (mm) { if (vma->vm_start <= mm->start_brk && @@ -245,32 +245,21 @@ static int show_smap(struct seq_file *m, void *v) { struct vm_area_struct *vma = v; - struct file *file = vma->vm_file; - int flags = vma->vm_flags; struct mm_struct *mm = vma->vm_mm; unsigned long vma_len = (vma->vm_end - vma->vm_start); struct mem_size_stats mss; memset(&mss, 0, sizeof mss); + show_map(m, v); + if (mm) { spin_lock(&mm->page_table_lock); smaps_pgd_range(vma, vma->vm_start, vma->vm_end, &mss); spin_unlock(&mm->page_table_lock); } - seq_printf(m, "%08lx-%08lx %c%c%c%c ", - vma->vm_start, - vma->vm_end, - flags & VM_READ ? 'r' : '-', - flags & VM_WRITE ? 'w' : '-', - flags & VM_EXEC ? 'x' : '-', - flags & VM_MAYSHARE ? 's' : 'p'); - - if (vma->vm_file) - seq_path(m, file->f_vfsmnt, file->f_dentry, " \t\n\\"); - - seq_printf(m, "\n" + seq_printf(m, "Size: %8lu KB\n" "Rss: %8lu KB\n" "Shared_Clean: %8lu KB\n"