Skip to content

Commit 50b7d85

Browse files
Matthew Wilcox (Oracle)torvalds
authored andcommitted
ramfs: fix nommu mmap with gaps in the page cache
ramfs needs to check that pages are both physically contiguous and contiguous in the file. If the page cache happens to have, eg, page A for index 0 of the file, no page for index 1, and page A+1 for index 2, then an mmap of the first two pages of the file will succeed when it should fail. Fixes: 642fb4d ("[PATCH] NOMMU: Provide shared-writable mmap support on ramfs") Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: David Howells <dhowells@redhat.com> Link: https://lkml.kernel.org/r/20200914122239.GO6583@casper.infradead.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 4d45e75 commit 50b7d85

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

fs/ramfs/file-nommu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ static unsigned long ramfs_nommu_get_unmapped_area(struct file *file,
224224
if (!pages)
225225
goto out_free;
226226

227-
nr = find_get_pages(inode->i_mapping, &pgoff, lpages, pages);
227+
nr = find_get_pages_contig(inode->i_mapping, pgoff, lpages, pages);
228228
if (nr != lpages)
229229
goto out_free_pages; /* leave if some pages were missing */
230230

0 commit comments

Comments
 (0)