diff options
Diffstat (limited to 'fs/cramfs/inode.c')
| -rw-r--r-- | fs/cramfs/inode.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index f408994fc632..0c35e62f108d 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -418,9 +418,12 @@ static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *vma)  		int i;  		vma->vm_flags |= VM_MIXEDMAP;  		for (i = 0; i < pages && !ret; i++) { +			vm_fault_t vmf;  			unsigned long off = i * PAGE_SIZE;  			pfn_t pfn = phys_to_pfn_t(address + off, PFN_DEV); -			ret = vm_insert_mixed(vma, vma->vm_start + off, pfn); +			vmf = vmf_insert_mixed(vma, vma->vm_start + off, pfn); +			if (vmf & VM_FAULT_ERROR) +				ret = vm_fault_to_errno(vmf, 0);  		}  	}  | 
