|
@@ -235,10 +235,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|
|
/* Try to get the remaining pages with get_user_pages */
|
|
|
start += nr << PAGE_SHIFT;
|
|
|
pages += nr;
|
|
|
- down_read(&mm->mmap_sem);
|
|
|
- ret = get_user_pages(current, mm, start,
|
|
|
- nr_pages - nr, write, 0, pages, NULL);
|
|
|
- up_read(&mm->mmap_sem);
|
|
|
+ ret = get_user_pages_unlocked(current, mm, start,
|
|
|
+ nr_pages - nr, write, 0, pages);
|
|
|
/* Have to be a bit careful with return values */
|
|
|
if (nr > 0)
|
|
|
ret = (ret < 0) ? nr : ret + nr;
|