Bug 26262 - NFS broken for NOMMU
NFS broken for NOMMU
Status: CLOSED CODE_FIX
Product: File System
Classification: Unclassified
Component: NFS
All Linux
: P1 high
Assigned To: Trond Myklebust
:
Depends on:
Blocks: 21782
  Show dependency treegraph
 
Reported: 2011-01-06 22:55 UTC by Mark Salter
Modified: 2011-02-02 23:52 UTC (History)
4 users (show)

See Also:
Kernel Version: 2.6.37
Tree: Mainline
Regression: Yes


Attachments
NFS: Don't use vm_map_ram() in readdir (12.10 KB, patch)
2011-01-08 23:18 UTC, Trond Myklebust
Details | Diff

Description Mark Salter 2011-01-06 22:55:22 UTC
This patch broke NFS for nommu kernels because of the use of vm_map_ram()/vm_unmap_ram() which don't exist for nommu.

commit 56e4ebf877b6043c289bda32a5a7385b80c17dee
Author: Bryan Schumaker <bjschuma@netapp.com>
Date:   Wed Oct 20 15:44:37 2010 -0400

    NFS: readdir with vmapped pages
    

When trying to boot from an NFS root, I hit:

BUG: failure at /linux-2.6/mm/nommu.c:419/vm_map_ram()!
Comment 1 Rafael J. Wysocki 2011-01-06 23:32:40 UTC
First-Bad-Commit : 56e4ebf877b6043c289bda32a5a7385b80c17dee
Comment 2 Trond Myklebust 2011-01-08 23:18:09 UTC
Created attachment 42952 [details]
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.
Comment 3 Trond Myklebust 2011-01-12 16:13:16 UTC
The above patch has been merged into mainline as commit 6650239a4b01077e80d5a4468562756d77afaa59, with Cc: stable@kernel.org

Marking this bug as resolved for now. Please tell me if this is not the case.

Note You need to log in before you can comment on or make changes to this bug.