NFS: Don't use vm_map_ram() in readdir
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 8 Jan 2011 22:45:38 +0000 (17:45 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 10 Jan 2011 19:45:01 +0000 (14:45 -0500)
commit6650239a4b01077e80d5a4468562756d77afaa59
tree505c9a1dc26c26608ce6a5981093a6357d4f3638
parent3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5
NFS: Don't use vm_map_ram() in readdir

vm_map_ram() is not available on NOMMU platforms, and causes trouble
on incoherrent architectures such as ARM when we access the page data
through both the direct and the virtual mapping.

The alternative is to use the direct mapping to access page data
for the case when we are not crossing a page boundary, but to copy
the data into a linear scratch buffer when we are accessing data
that spans page boundaries.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: stable@kernel.org [2.6.37]
fs/nfs/dir.c
fs/nfs/nfs2xdr.c
fs/nfs/nfs3xdr.c
fs/nfs/nfs4xdr.c
include/linux/sunrpc/xdr.h
net/sunrpc/xdr.c