diff options
Diffstat (limited to 'fs/ocfs2/mmap.c')
-rw-r--r-- | fs/ocfs2/mmap.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c index 69f85ae392dc..51b020447683 100644 --- a/fs/ocfs2/mmap.c +++ b/fs/ocfs2/mmap.c | |||
@@ -83,10 +83,12 @@ static struct vm_operations_struct ocfs2_file_vm_ops = { | |||
83 | int ocfs2_mmap(struct file *file, struct vm_area_struct *vma) | 83 | int ocfs2_mmap(struct file *file, struct vm_area_struct *vma) |
84 | { | 84 | { |
85 | int ret = 0, lock_level = 0; | 85 | int ret = 0, lock_level = 0; |
86 | struct ocfs2_super *osb = OCFS2_SB(file->f_dentry->d_inode->i_sb); | ||
86 | 87 | ||
87 | /* We don't want to support shared writable mappings yet. */ | 88 | /* We don't want to support shared writable mappings yet. */ |
88 | if (((vma->vm_flags & VM_SHARED) || (vma->vm_flags & VM_MAYSHARE)) | 89 | if (!ocfs2_mount_local(osb) && |
89 | && ((vma->vm_flags & VM_WRITE) || (vma->vm_flags & VM_MAYWRITE))) { | 90 | ((vma->vm_flags & VM_SHARED) || (vma->vm_flags & VM_MAYSHARE)) && |
91 | ((vma->vm_flags & VM_WRITE) || (vma->vm_flags & VM_MAYWRITE))) { | ||
90 | mlog(0, "disallow shared writable mmaps %lx\n", vma->vm_flags); | 92 | mlog(0, "disallow shared writable mmaps %lx\n", vma->vm_flags); |
91 | /* This is -EINVAL because generic_file_readonly_mmap | 93 | /* This is -EINVAL because generic_file_readonly_mmap |
92 | * returns it in a similar situation. */ | 94 | * returns it in a similar situation. */ |