diff options
author | Christoph Hellwig <hch@lst.de> | 2017-09-01 17:39:17 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-09-04 19:05:16 -0400 |
commit | b4bf802a5a6563c22d5e41a0f8873088bd3f655e (patch) | |
tree | 4566651bc3e7b65d0308ebe092f4446b2605ce24 /mm/nommu.c | |
parent | 9a779bc149c79a7acae5614617a0a9e0fd007ce4 (diff) | |
download | lwn-b4bf802a5a6563c22d5e41a0f8873088bd3f655e.tar.gz lwn-b4bf802a5a6563c22d5e41a0f8873088bd3f655e.zip |
mm/nommu: switch do_mmap_private to kernel_read
Instead of playing with the address limit. This also gains us
validation of the kvec and proper atime updates.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'mm/nommu.c')
-rw-r--r-- | mm/nommu.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/mm/nommu.c b/mm/nommu.c index fc184f597d59..e907a25ec9bd 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1164,17 +1164,12 @@ static int do_mmap_private(struct vm_area_struct *vma, if (vma->vm_file) { /* read the contents of a file into the copy */ - mm_segment_t old_fs; loff_t fpos; fpos = vma->vm_pgoff; fpos <<= PAGE_SHIFT; - old_fs = get_fs(); - set_fs(KERNEL_DS); - ret = __vfs_read(vma->vm_file, base, len, &fpos); - set_fs(old_fs); - + ret = kernel_read(vma->vm_file, base, len, &fpos); if (ret < 0) goto error_free; |