smaps: extract pmd walker from smaps code
[powerpc.git] / fs / proc / nommu.c
index cff10ab..22f789d 100644 (file)
 #include "internal.h"
 
 /*
- * display a list of all the VMAs the kernel knows about
- * - nommu kernals have a single flat list
+ * display a single VMA to a sequenced file
  */
-static int nommu_vma_list_show(struct seq_file *m, void *v)
+int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
 {
-       struct vm_area_struct *vma;
        unsigned long ino = 0;
        struct file *file;
        dev_t dev = 0;
        int flags, len;
 
-       vma = rb_entry((struct rb_node *) v, struct vm_area_struct, vm_rb);
-
        flags = vma->vm_flags;
        file = vma->vm_file;
 
        if (file) {
-               struct inode *inode = vma->vm_file->f_dentry->d_inode;
+               struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
                dev = inode->i_sb->s_dev;
                ino = inode->i_ino;
        }
@@ -71,13 +67,25 @@ static int nommu_vma_list_show(struct seq_file *m, void *v)
                if (len < 1)
                        len = 1;
                seq_printf(m, "%*c", len, ' ');
-               seq_path(m, file->f_vfsmnt, file->f_dentry, "");
+               seq_path(m, file->f_path.mnt, file->f_path.dentry, "");
        }
 
        seq_putc(m, '\n');
        return 0;
 }
 
+/*
+ * display a list of all the VMAs the kernel knows about
+ * - nommu kernals have a single flat list
+ */
+static int nommu_vma_list_show(struct seq_file *m, void *v)
+{
+       struct vm_area_struct *vma;
+
+       vma = rb_entry((struct rb_node *) v, struct vm_area_struct, vm_rb);
+       return nommu_vma_show(m, vma);
+}
+
 static void *nommu_vma_list_start(struct seq_file *m, loff_t *_pos)
 {
        struct rb_node *_rb;
@@ -120,7 +128,7 @@ static int proc_nommu_vma_list_open(struct inode *inode, struct file *file)
        return seq_open(file, &proc_nommu_vma_list_seqop);
 }
 
-static struct file_operations proc_nommu_vma_list_operations = {
+static const struct file_operations proc_nommu_vma_list_operations = {
        .open    = proc_nommu_vma_list_open,
        .read    = seq_read,
        .llseek  = seq_lseek,