Fix pagemap_read() use of struct mm_walk
authorAndrew Morton <akpm@linux-foundation.org>
Sat, 5 Jul 2008 08:02:01 +0000 (01:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Jul 2008 20:13:44 +0000 (13:13 -0700)
commit5d7e0d2bd98ef4f5a16ac9da1987ae655368dd6a
treea910f821c544bba353324c63e2783852a1b95b11
parentca31e146d5c2fe51498e619eb3a64782d02e310a
Fix pagemap_read() use of struct mm_walk

Fix some issues in pagemap_read noted by Alexey:

- initialize pagemap_walk.mm to "mm" , so the code starts working as
  advertised

- initialize ->private to "&pm" so it wouldn't immediately oops in
  pagemap_pte_hole()

- unstatic struct pagemap_walk, so two threads won't fsckup each other
  (including those started by root, including flipping ->mm when you don't
  have permissions)

- pagemap_read() contains two calls to ptrace_may_attach(), second one
  looks unneeded.

- avoid possible kmalloc(0) and integer wraparound.

Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
[ Personally, I'd just remove the functionality entirely  - Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/task_mmu.c