mm: special mapping nopage
authorNick Piggin <npiggin@suse.de>
Sat, 9 Feb 2008 00:15:19 +0000 (01:15 +0100)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 9 Feb 2008 02:57:39 +0000 (18:57 -0800)
commitb1d0e4f535e10775cffde922208b49629169aeaa
treec5fa68fb25ffd2485da5de236fcf2b67d9df3dfd
parent6a306e8b4c81a1c1f538e390d92bfe80d04b254c
mm: special mapping nopage

Convert special mapping install from nopage to fault.

Because the "vm_file" is NULL for the special mapping, the generic VM
code has messed up "vm_pgoff" thinking that it's an anonymous mapping
and the offset does't matter.  For that reason, we need to undo the
vm_pgoff offset that got added into vmf->pgoff.

[ We _really_ should clean that up - either by making this whole special
  mapping code just use a real file entry rather than that ugly array of
  "struct page" pointers, or by just making the VM code realize that
  even if vm_file is NULL it may not be a regular anonymous mmap.
 - Linus ]

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mmap.c