aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorBrice Goglin <Brice.Goglin@inria.fr>2008-12-09 13:14:23 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2008-12-10 08:01:53 -0800
commit80bba1290ab5122c60cdb73332b26d288dc8aedd (patch)
tree1a97a6f5070818ffcb3573c1968471110bed3a42 /block
parent52b9582dd5983ac888c494bd3e15b5cd40195c53 (diff)
mm: no get_user/put_user while holding mmap_sem in do_pages_stat?
Since commit 2f007e74bb85b9fc4eab28524052161703300f1a, do_pages_stat() gets the page address from user-space and puts the corresponding status back while holding the mmap_sem for read. There is no need to hold mmap_sem there while some page-faults may occur. This patch adds a temporary address and status buffer so as to only hold mmap_sem while working on these kernel buffers. This is implemented by extracting do_pages_stat_array() out of do_pages_stat(). Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr> Cc: Christoph Lameter <clameter@sgi.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Nick Piggin <npiggin@suse.de> 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 'block')
0 files changed, 0 insertions, 0 deletions