From patchwork Tue Apr 26 15:06:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12827411 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 47789C433EF for ; Tue, 26 Apr 2022 15:08:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB0F16B00C1; Tue, 26 Apr 2022 11:08:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A62DA6B00C2; Tue, 26 Apr 2022 11:08:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 79FAD6B00C3; Tue, 26 Apr 2022 11:08:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.27]) by kanga.kvack.org (Postfix) with ESMTP id 6AB436B00C1 for ; Tue, 26 Apr 2022 11:08:17 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 514441208C6 for ; Tue, 26 Apr 2022 15:08:17 +0000 (UTC) X-FDA: 79399361034.01.54B8B92 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf26.hostedemail.com (Postfix) with ESMTP id 203FC140042 for ; Tue, 26 Apr 2022 15:08:14 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 23QDT12W003733; Tue, 26 Apr 2022 15:08:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=lmvBg3xZ+MSjAFUNss/pY9W2o34DqElYKaMH18RahWQ=; b=bdWliJD3CWzJhcxieeXjSiRs7MtQo9u4WBpo7RjRVWQxqbhFatx1jtcj1BRR6dQt26MF 73vLIwABDDS1wpvnLB2GnJ2VpU6ao4eR6ICOHPyrdopwaI2BvTJnC1bCgb6mcDOJ0+68 MxIWJbHL/3k3X2emjCC05dgOaC80lze3aQhWJag/vJKWN3cL+A7Nc9uE+rmmvF+gRz5o PQgFZj6hxAcxWA2cM+3yXf1og2ga53WMXPoLiptfRZHecUcmVUeGetBh89+ct7oaqwt2 4THKozz8F5fuOifRJPyjwr+AlrqirGlqugUAmqKkkJI522phVpAgMguyNDgYrEQ3nlm8 cA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fmbb4p75d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Apr 2022 15:08:14 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23QF6UIN037839; Tue, 26 Apr 2022 15:08:13 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fp5yjkvb2-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Apr 2022 15:08:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nXp81cMwCWSAlORNUzy6FJ7UlRiTJUsKqIIiGtHC8Lw1ihK2GWFfkgO5HflopzRHlfQ8N5tIASnnjurSYFjqDq6+sTXvoPYWCL5168x+skYsUDkhs1onzchCc9Cf7KibU+MwkOx/sCDDFtxNeaUPrrjEHafky7zRfjtBW2wTu3arkwTqZsdLzkSF27UJcK0EfD8ybWO5xEhQthwGiq6W1MBOPvQ/1g++XJxamzPrYQgVEzSRC+CDxFiUuanp/BnCBJd9sNPfTqw2pXlSogj6O8t6JQeqjtjgf3lotIYK+QUuUqVlGE9ydgWkvh8md+6rdlAWqaZdKznGypcH/fD/uA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lmvBg3xZ+MSjAFUNss/pY9W2o34DqElYKaMH18RahWQ=; b=Ev3Poks4ik5NY78Tgw6f8m4aDh4yzXsfwECX4QZGMu0RdW2HGo33ZyEPiYujJfEAeNeK++MngmJsUYyMkAJ3Egon08031aERUTi4Qm1EvyxnDLDsBaGTN2XPtaCFN+WqmDFn2gGZuyQHxpw/djFwq1n3TJY8F1MbAsYeGFLGTf9tWGrhvTr6GRghkAtg7uqYih2dOniI8bit+DQcWMO0bGSZ76pyCki0Vd6uHDZm+DdvI6EKL9kTqHpZZcsdffhEFdW+9CixpKZjJcQNkurHZZcpCC4zK2Kc20DD3CrdSOum+p7cAlfJAwQZ8KF6F3IrQJ0QiJmbwcJ/5DFSpCPucw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lmvBg3xZ+MSjAFUNss/pY9W2o34DqElYKaMH18RahWQ=; b=KP0OjKNe/MbuMbQm4pknmzq3ziGxhy+kuHZhbtFshCMX8tz+NioWBMZ0oWkvOFnMk7TMoD8IpKYNSiQFqycTsWNUp1tuy/UEpPgjOJgYFz2eCtzYhr0FfJfSzhPBgyhD8MliyMpvMVZl94fiiPbE8OqZLSai2q8HOQG3QudISl0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB3037.namprd10.prod.outlook.com (2603:10b6:805:dc::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.19; Tue, 26 Apr 2022 15:08:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::318c:d02:2280:c2c]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::318c:d02:2280:c2c%7]) with mapi id 15.20.5186.021; Tue, 26 Apr 2022 15:08:10 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , Yu Zhao Subject: [PATCH v8 70/70] mm/mmap.c: pass in mapping to __vma_link_file() Thread-Topic: [PATCH v8 70/70] mm/mmap.c: pass in mapping to __vma_link_file() Thread-Index: AQHYWX9DDodK3uPYbUGcWxPieY5ICQ== Date: Tue, 26 Apr 2022 15:06:54 +0000 Message-ID: <20220426150616.3937571-71-Liam.Howlett@oracle.com> References: <20220426150616.3937571-1-Liam.Howlett@oracle.com> In-Reply-To: <20220426150616.3937571-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9dd0a1c8-37e4-4ac4-7421-08da2796940e x-ms-traffictypediagnostic: SN6PR10MB3037:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4nFiuK2L3glSxUC2zUfrj6dTGT7gTDj0GqcxbXxC9vZNMN+PovaCyk6AaxJWXdZuU9SLY9b8GIXgltzv21hD3WHJEDOvotkEh45i0+REULrRA3Ku+jKlSSZQZ2X1ZEpNy2a1hXrF/mtwH52lhbzFq3aWkMRrKp3r7GbHw0WKWKOt4SKc+2iwV3X8seLuZym2XGAk+qWph1PBoe6B1P2yqWWcqnc8pzYDzGeDEA4MgNR76KtNMirFenigE2BFvZOfYUnHMa17ZdGlNyIl+3DuuVzfA2MKrrV/W0m/8lZcn0oGwYhkIcawQjtBQVr056vURU9lYuaSQMJKX2RF7onpYzw7IKiQ1/cDObHRwhOfbgQJybqWcpnlIcSAyB0ce+Xzw5MyxOblCcA6nulna2N/qVQ7+rk9E67zNbUdPqlQrSFvLRC0/KLV0Ml+mTHDhH/bifxVooACGutR0Rxos+zznsWnPkzSsl8Tv52E141x4gTFGffyEhcayTUNrPnv0ohM8i3rI4c0tMybpdtiN8lBCJDn/xPvyBLWWiUre0tcQcfvxGogZJiu8s0vHIf4howU0QYWUI6mzQ3+4MTWAekwp2ZeBl9kpcrBc2wFFlvtPeumjQx/U4NWyFZsfhERm201kTCigMV4AxmFKWJ3kGq/MBKQaIpNAcEz0ZyX+rpTexWVoDdfboLetm/GbqLZ6iicCOBTC5QINWIWtOuO4M/ZrQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8676002)(64756008)(83380400001)(66556008)(66476007)(66446008)(66946007)(86362001)(122000001)(91956017)(76116006)(44832011)(2906002)(38070700005)(38100700002)(316002)(2616005)(186003)(1076003)(110136005)(5660300002)(6666004)(8936002)(6506007)(36756003)(508600001)(6486002)(6512007)(71200400001)(26005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?9HuTl2HTbgzmllUxd24QFlo?= =?iso-8859-1?q?khxh25hfsD38X9qIOjglE0VYb4reX3qJo1rJ6QFEi91I6k9nl3KwwbC7Lik1?= =?iso-8859-1?q?45btVN412FvCevmLmW/ml3IH8yRxu3BSBy1Jgg8i+4nRyN/jdEUf8EofXI3I?= =?iso-8859-1?q?IDFDsOkI6dfxkAxANQySRA2XLpfsPju0WoRkW3y+Wj1al81dzMb7K+StawPl?= =?iso-8859-1?q?Zf42gAd5mZ2Uofd+Hlp4LXfj6dspqwHwKlJYnrK7kWODzbm2izOB6FQb3SwM?= =?iso-8859-1?q?TCOkAxhknXkx8KPJ62invykGsGB85MZvzyunixf1K4YbR9cT4YLSZyQBU/TG?= =?iso-8859-1?q?xQeKZAyT7krARHOkrp1qzjAB3k7javp6oJI5ZDTfgWcUu0w8Anp1ZWSS//Za?= =?iso-8859-1?q?UumO9vE+IljyGHB0afPu4A8ry0YtfyWFkv3LlAYAG0eJtQ4iLIku2Aeway5U?= =?iso-8859-1?q?bFMJtkWoxOu8Xa0g6h6fuU0WFFAZjUV66bS82TzD+C+LK6SDBz7WF4370Boe?= =?iso-8859-1?q?GPoaX0fBmDJ5ZyWIrx6w1flUtD9TIJdA6fshiu8G5W8PquH3eop3dIuXyQUn?= =?iso-8859-1?q?dXNVghRF5e1z+SWBLnxxkSfLtXMbXJjYw7Bntv0ET4W4MeOZ5rNlvfArMdkc?= =?iso-8859-1?q?cLmap/TXo3wj+ZoUZRDAHRQ+gmBExEgTF6dbhalPqho/AbKKStoz5++KUAOT?= =?iso-8859-1?q?xqDTCrQAv+Xct+rx9t1yQCOiAq7+aKHu9QppDCAkeXRysszL/wAxRO6sj7jE?= =?iso-8859-1?q?hv9vOrl6j+f+8QlTI/HIRArQdPjbPa4m10/f7wR1mkKe7xiYMqr+/2IaysmW?= =?iso-8859-1?q?kOCzecR77dLC/92bAP1DMeSAIrFZa8J7TrAb/Cah/2z3Iw6t2NxNbKKLMVGV?= =?iso-8859-1?q?vvHJIhB7CaXRvQJUCl2Np5y2DdZKtesnnlW3WxKRnVBksqnEHMaF9LE6bpNS?= =?iso-8859-1?q?PdnrzltVjPA1fwWy2uDkGooIj8yJ1h5Un42wzDrGXCmAJlUzAXksn43CUnXc?= =?iso-8859-1?q?s2cNHakTiJ+ZJK56PN6M9J/mBDLwAsJf8/RRth6Z0WJ8OG/FrQZ4KSNK4n9/?= =?iso-8859-1?q?QGBiUrc8AnUX6sx3WlqA1GxGQ3S74YTPuR46XnGGeXEp18liHl4DCA9REPgh?= =?iso-8859-1?q?n8g32jYPIAuKLhJzAZjMbLu173ja7zEqp1l2HEQ0EkPKoHoLj4V8Ef9fO3aK?= =?iso-8859-1?q?Ym/09AnQsbWkK201dzFZp1249MfcNWZfHgjnMii0NDzlUnxc5F5nu7Ug3EZW?= =?iso-8859-1?q?mA1Piygzrj6GkqUFpg2J8GCwU+8ZZmp26hh74F/W2KunI2PXOvc2OEu+mGjO?= =?iso-8859-1?q?nI9LZ4cqEaHw7O786c1DFEzb6B/XRHrPBxVBSe0/T672+W3Zs1wtFOeK++Cw?= =?iso-8859-1?q?B/kB+VJwh67vWVtALnWbXyALWLjTEBFLjje+u3/l2purjliAEMkx6wUuhlcW?= =?iso-8859-1?q?9yrnPZQEKrpFfBZUnXIzDy6UVY8ozqkZbxr7Ju6MGpjptjzjXZFwLZvAGTKf?= =?iso-8859-1?q?yYA2il/fEKIZHa3C94MszAfpMtZl8lx15olQZu2H0Y6pcS21AnC//pvTSzol?= =?iso-8859-1?q?RbSv268uaJm5ySPJkGVSmXkhRndsBsrvmnBwCC4sxujBgdeV45c6bhpKanVq?= =?iso-8859-1?q?ZP1RBq6hBNmNVoCnQTEJKZDBiROFaKk85GT4qHDRMtIi+/AkgB45j08BNK/b?= =?iso-8859-1?q?101h05wcyC9vF7OkQXjhx1OD/yjm1g1Q9GQyjhhq6O6Qsb+eypz7OAw7TjOf?= =?iso-8859-1?q?8Y36ti0zb2NHzveB6H5ERlb+5EaVb16srmjG3+AJX1LfHYYXyoDMiO1OFPm2?= =?iso-8859-1?q?xYcjb9UI=3D?= MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9dd0a1c8-37e4-4ac4-7421-08da2796940e X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2022 15:06:54.2232 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7ufNBFlwc1qrxSTUwUvO9Ly3VF+g29nnPGFNxN+lP9NPJnD2hsJwTGm0bwHnn4iuh9+SDegM6H+LUyCd2XJL0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB3037 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-04-26_04:2022-04-26,2022-04-26 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204260096 X-Proofpoint-ORIG-GUID: yCGxLh7CNVsXInr1UmSeMqhE-Owa6zq4 X-Proofpoint-GUID: yCGxLh7CNVsXInr1UmSeMqhE-Owa6zq4 X-Stat-Signature: bagh73bpz44ikzprhs8npcbu3u3tdpnz X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 203FC140042 Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=bdWliJD3; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KP0OjKNe; spf=none (imf26.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.177.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-HE-Tag: 1650985694-600585 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: "Liam R. Howlett" __vma_link_file() resolves the mapping from the file, if there is one. Pass through the mapping and check the vm_file externally since most places already have the required information and check of vm_file. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 01985a0d664e..6a37f5d2e496 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -249,6 +249,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) if (brk < min_brk) goto out; + /* * Check against rlimit here. If this check is done later after the test * of oldbrk with newbrk then it can escape the test and let the data @@ -325,7 +326,6 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) if (populate) mm_populate(oldbrk, newbrk - oldbrk); return brk; - out: mmap_write_unlock(mm); return origbrk; @@ -457,21 +457,15 @@ static unsigned long count_vma_pages_range(struct mm_struct *mm, return nr_pages; } -static void __vma_link_file(struct vm_area_struct *vma) +static void __vma_link_file(struct vm_area_struct *vma, + struct address_space *mapping) { - struct file *file; - - file = vma->vm_file; - if (file) { - struct address_space *mapping = file->f_mapping; - - if (vma->vm_flags & VM_SHARED) - mapping_allow_writable(mapping); + if (vma->vm_flags & VM_SHARED) + mapping_allow_writable(mapping); - flush_dcache_mmap_lock(mapping); - vma_interval_tree_insert(vma, &mapping->i_mmap); - flush_dcache_mmap_unlock(mapping); - } + flush_dcache_mmap_lock(mapping); + vma_interval_tree_insert(vma, &mapping->i_mmap); + flush_dcache_mmap_unlock(mapping); } /* @@ -518,10 +512,11 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) } vma_mas_store(vma, &mas); - __vma_link_file(vma); - if (mapping) + if (mapping) { + __vma_link_file(vma, mapping); i_mmap_unlock_write(mapping); + } mm->map_count++; validate_mm(mm); @@ -762,14 +757,14 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, uprobe_munmap(next, next->vm_start, next->vm_end); i_mmap_lock_write(mapping); - if (insert) { + if (insert && insert->vm_file) { /* * Put into interval tree now, so instantiated pages * are visible to arm/parisc __flush_dcache_page * throughout; but we cannot insert into address * space until vma start or end is updated. */ - __vma_link_file(insert); + __vma_link_file(insert, insert->vm_file->f_mapping); } } @@ -2982,7 +2977,6 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, struct mm_struct *mm = current->mm; validate_mm_mt(mm); - /* * Check against address space limits by the changed size * Note: This happens *after* clearing old mappings in some code paths. @@ -3037,6 +3031,7 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, mas_set_range(mas, vma->vm_start, addr + len - 1); mas_store_gfp(mas, vma, GFP_KERNEL); mm->map_count++; + out: perf_event_mmap(vma); mm->total_vm += len >> PAGE_SHIFT;