aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/file.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 404c19c866a7..1eab9c9ad242 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -64,11 +64,7 @@ const struct file_operations nfs_file_operations = {
64 .write = do_sync_write, 64 .write = do_sync_write,
65 .aio_read = nfs_file_read, 65 .aio_read = nfs_file_read,
66 .aio_write = nfs_file_write, 66 .aio_write = nfs_file_write,
67#ifdef CONFIG_MMU
68 .mmap = nfs_file_mmap, 67 .mmap = nfs_file_mmap,
69#else
70 .mmap = generic_file_mmap,
71#endif
72 .open = nfs_file_open, 68 .open = nfs_file_open,
73 .flush = nfs_file_flush, 69 .flush = nfs_file_flush,
74 .release = nfs_file_release, 70 .release = nfs_file_release,
@@ -304,11 +300,13 @@ nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
304 dprintk("NFS: mmap(%s/%s)\n", 300 dprintk("NFS: mmap(%s/%s)\n",
305 dentry->d_parent->d_name.name, dentry->d_name.name); 301 dentry->d_parent->d_name.name, dentry->d_name.name);
306 302
307 status = nfs_revalidate_mapping(inode, file->f_mapping); 303 /* Note: generic_file_mmap() returns ENOSYS on nommu systems
304 * so we call that before revalidating the mapping
305 */
306 status = generic_file_mmap(file, vma);
308 if (!status) { 307 if (!status) {
309 vma->vm_ops = &nfs_file_vm_ops; 308 vma->vm_ops = &nfs_file_vm_ops;
310 vma->vm_flags |= VM_CAN_NONLINEAR; 309 status = nfs_revalidate_mapping(inode, file->f_mapping);
311 file_accessed(file);
312 } 310 }
313 return status; 311 return status;
314} 312}