aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/file.c b/kernel/file.c
index 11a7ee8..738f1f0 100644
--- a/kernel/file.c
+++ b/kernel/file.c
@@ -658,8 +658,10 @@ static int fuse_get_user_pages(struct fuse_req *req, const char __user *buf,
nbytes = min(nbytes, (unsigned) FUSE_MAX_PAGES_PER_REQ << PAGE_SHIFT);
npages = (nbytes + offset + PAGE_SIZE - 1) >> PAGE_SHIFT;
npages = min(npages, FUSE_MAX_PAGES_PER_REQ);
+ down_read(&current->mm->mmap_sem);
npages = get_user_pages(current, current->mm, user_addr, npages, write,
0, req->pages, NULL);
+ up_read(&current->mm->mmap_sem);
if (npages < 0)
return npages;