Bug 26262

Summary: NFS broken for NOMMU
Product: File System Reporter: Mark Salter (msalter)
Component: NFSAssignee: Trond Myklebust (trondmy)
Status: CLOSED CODE_FIX    
Severity: high CC: florian, maciej.rutecki, msalter, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.37 Tree: Mainline
Regression: Yes
Bug Depends on:    
Bug Blocks: 21782    
Attachments: NFS: Don't use vm_map_ram() in readdir

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.