proc: use ppos instead of m->version
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 7 Apr 2020 03:09:14 +0000 (20:09 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Apr 2020 17:43:42 +0000 (10:43 -0700)
The ppos is a private cursor, just like m->version.  Use the canonical
cursor, not a special one.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/20200317193201.9924-3-adobriyan@gmail.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/task_mmu.c

index 981085b3270800c77528c06f2d567b4aaaae6a2f..9419c6972fcdcbe702fd1479cd1918a058711ec2 100644 (file)
@@ -134,7 +134,7 @@ m_next_vma(struct proc_maps_private *priv, struct vm_area_struct *vma)
 static void *m_start(struct seq_file *m, loff_t *ppos)
 {
        struct proc_maps_private *priv = m->private;
-       unsigned long last_addr = m->version;
+       unsigned long last_addr = *ppos;
        struct mm_struct *mm;
        struct vm_area_struct *vma;
 
@@ -170,14 +170,13 @@ static void *m_start(struct seq_file *m, loff_t *ppos)
        return priv->tail_vma;
 }
 
-static void *m_next(struct seq_file *m, void *v, loff_t *pos)
+static void *m_next(struct seq_file *m, void *v, loff_t *ppos)
 {
        struct proc_maps_private *priv = m->private;
        struct vm_area_struct *next;
 
-       (*pos)++;
        next = m_next_vma(priv, v);
-       m->version = next ? next->vm_start : -1UL;
+       *ppos = next ? next->vm_start : -1UL;
 
        return next;
 }