From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13BC0C433E7 for ; Fri, 16 Oct 2020 02:50:04 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8C9992074D for ; Fri, 16 Oct 2020 02:50:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="ts9aYWMj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8C9992074D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 1388D940075; Thu, 15 Oct 2020 22:50:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E81B94006D; Thu, 15 Oct 2020 22:50:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F3FDA940075; Thu, 15 Oct 2020 22:50:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0248.hostedemail.com [216.40.44.248]) by kanga.kvack.org (Postfix) with ESMTP id C358A94006D for ; Thu, 15 Oct 2020 22:50:02 -0400 (EDT) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 5DE1D181AEF15 for ; Fri, 16 Oct 2020 02:50:02 +0000 (UTC) X-FDA: 77376259044.10.group44_1e1397627219 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin10.hostedemail.com (Postfix) with ESMTP id 3C50016A07F for ; Fri, 16 Oct 2020 02:50:02 +0000 (UTC) X-HE-Tag: group44_1e1397627219 X-Filterd-Recvd-Size: 2612 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf03.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 02:50:01 +0000 (UTC) Received: from localhost.localdomain (c-73-231-172-41.hsd1.ca.comcast.net [73.231.172.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A661E20E65; Fri, 16 Oct 2020 02:50:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602816601; bh=v31I0Hntz+xKGi3x0IKHUhPWMSVLSjvaw6fiwxhez+0=; h=Date:From:To:Subject:In-Reply-To:From; b=ts9aYWMj8vXSb0+MZfIZks+vM4xMuNDKA6yfmRPchdVdj/hdlTFtIGDVX2UGfTM3E hoDLPy4bHXAZ0bgc1mmKmsCk4u9/OaQrCmzIyCX0Hbv2aJ4+xspDwJtj6pkBpxvBLH iKxbNg8oABZA0KN6iINzMT/9pgZ+TLS26+UIp/tA= Date: Thu, 15 Oct 2020 19:50:00 -0700 From: Andrew Morton To: akpm@linux-foundation.org, dhowells@redhat.com, linux-mm@kvack.org, mm-commits@vger.kernel.org, torvalds@linux-foundation.org, willy@infradead.org Subject: [patch 143/156] ramfs: fix nommu mmap with gaps in the page cache Message-ID: <20201016025000.TP1DS3-C6%akpm@linux-foundation.org> In-Reply-To: <20201015192732.f448da14e9854c7cb7299956@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Matthew Wilcox (Oracle) Subject: 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. Link: https://lkml.kernel.org/r/20200914122239.GO6583@casper.infradead.org Fixes: 642fb4d1f1dd ("[PATCH] NOMMU: Provide shared-writable mmap support on ramfs") Signed-off-by: Matthew Wilcox (Oracle) Cc: David Howells Signed-off-by: Andrew Morton --- fs/ramfs/file-nommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/ramfs/file-nommu.c~ramfs-fix-nommu-mmap-with-gaps-in-the-page-cache +++ a/fs/ramfs/file-nommu.c @@ -224,7 +224,7 @@ static unsigned long ramfs_nommu_get_unm if (!pages) goto out_free; - nr = find_get_pages(inode->i_mapping, &pgoff, lpages, pages); + nr = find_get_pages_contig(inode->i_mapping, pgoff, lpages, pages); if (nr != lpages) goto out_free_pages; /* leave if some pages were missing */ _