From patchwork Wed Feb 2 02:42:28 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: 12732574 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 E01C9C433F5 for ; Wed, 2 Feb 2022 03:13:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59BCB8D00D4; Tue, 1 Feb 2022 22:13:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 54BAB8D0077; Tue, 1 Feb 2022 22:13:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 39D978D00D4; Tue, 1 Feb 2022 22:13:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay028.a.hostedemail.com [64.99.140.28]) by kanga.kvack.org (Postfix) with ESMTP id 29CDE8D0077 for ; Tue, 1 Feb 2022 22:13:38 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 87FE622F68 for ; Wed, 2 Feb 2022 02:57:07 +0000 (UTC) X-FDA: 79096328094.02.12C1814 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf01.hostedemail.com (Postfix) with ESMTP id BAB6740002 for ; Wed, 2 Feb 2022 02:57:06 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2120GwmG008584; Wed, 2 Feb 2022 02:43:36 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=MQzemvQua9iUnkmBf0pkCobrkrCyR/FmlChmcWx+/zI=; b=oiXVEjfQmTMwkeS5eowKsClAQUQMCoMeFrNtscZNbKEQg3lXPBx7EYAzS315RJbfvaij SwE+BMUsAesy+gwMlJOy+U1dfYfJFOw0GegQXMkdLMvuKe0cn3C2wvn111HdLiObhhIq cpGkcMvFMOnjb4zTDq2fL0qS/iw6qYprpJWzeQLHCVNr88l9lC0icwskJEnN+8SCGdE1 qhHNxI7pvmKM3/bQAwpgRhfkHYLBgrPnQPu/69Wl9hrw2IG3CqaUwlE3NtHR1aPoKtlK YU2J62873d1l1j3qTF9LN1TpoWQUXc5Xt16vEm/sRqC84VUNGj0JS289H1aMz4tz1+gO Dw== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3dxjatvugk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Feb 2022 02:43:36 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 2122Zd01126549; Wed, 2 Feb 2022 02:43:35 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by userp3030.oracle.com with ESMTP id 3dvtq1m9yk-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Feb 2022 02:43:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hHls7+7WC7tTHEvVetCs4MnnMSDokjB9JiVS7IamhBDzQ260Joz3bCBeN9hr3uU6QFM4PQW3iFeSt/8148GxQsVTepEMMgmXUB23izOLelNg2SIZIAsXJGz02CYDbCP/jkGpLx5pnLuYppBmM7erE3jrhrxRUYUAlOkHk42H8YPv5aZpgxdFAOpxmFvxrvWY1HqCXHFlxVyh5pVWJ5iGdAfAH+k5h56UDtfdpIazFr5nOTL/b7BZwRP9+qOhBB6WglWnfZYbgznWLMQVpqKJq4WcU4YvNayUVXxQaWRXhzuLRLN8vKCbdfTGvg1NWwYBAVGMdm0rk0rrSw9WhC27+w== 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=MQzemvQua9iUnkmBf0pkCobrkrCyR/FmlChmcWx+/zI=; b=TtPhnh8Ck9+wiQPCISsnvs5eq4+pRfiU7qlPl0nSxXbcVxIItaw9Dgsg5h4N0Y6mGv7a5Htp8hoTOaqhMxcduBaTo2WZ/oF5dFJoc3OVT3D7gbNjK3FOOUPk1/8sd7ijqBDh96pGhSMzCLvA15MFplSHUBZxEpdroePCc9xfzl2V688oz9C9mh00xqGeXLJpJmR0NxMEVEIL4EsPWZ/9YJ5urlALrIBrc8DZniJUwK89u2LvKcaaByA/NCuF/CBlUTaF7hOckq5rni5wlFbzL0H5SutALiQuLP1tnF7S6Xyw88tO/x45SlprYPnImC7pnLTzW4WTG+7E6aYMjFbYkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=MQzemvQua9iUnkmBf0pkCobrkrCyR/FmlChmcWx+/zI=; b=aI/Kg8Gz3wfBP0urI5z0+r7QXt/c1uxk3O9THvpiTOrtgYj+alJegNyDHuHE5WTQp+GkLm29fs1CcaC2GZTXsTG9y+5UJmBw9sc7oYNruR7fNA6ZH97ny7ZM6ZwQuifGO3WsYho+Z9V3wN//HrJY/MCkV19DdVbhgYDCHSs3Uls= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO1PR10MB4801.namprd10.prod.outlook.com (2603:10b6:303:96::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Wed, 2 Feb 2022 02:43:31 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::3857:3a25:3444:fdd3]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::3857:3a25:3444:fdd3%5]) with mapi id 15.20.4930.022; Wed, 2 Feb 2022 02:43:31 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v5 70/70] mm/mmap.c: Pass in mapping to __vma_link_file() Thread-Topic: [PATCH v5 70/70] mm/mmap.c: Pass in mapping to __vma_link_file() Thread-Index: AQHYF96ESrS5WLVzMU6LcrDXrVDyVg== Date: Wed, 2 Feb 2022 02:42:28 +0000 Message-ID: <20220202024137.2516438-71-Liam.Howlett@oracle.com> References: <20220202024137.2516438-1-Liam.Howlett@oracle.com> In-Reply-To: <20220202024137.2516438-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.34.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ed4b5890-2c58-4b86-0999-08d9e5f5ccf4 x-ms-traffictypediagnostic: CO1PR10MB4801:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AlhL96oqWqkxJb6ixhC47H/LFkY/38MU6A0uqr7APGziQ8I3TjPto/yTRH8mZWYAd43fJlMCsScHb7CQKEippa2G5Iazy5OGWlRt0kzPJxM8HFhQm/urvEAaUaenOmnuXeusFHR9/44cv6VsCWg00sUCmAfdqTfPkSZYfOjw3lFhwdq46Fo6/HDNzuA20VnQsIElfW0Md/ffRoFnyJfisdi2ZwhyJD3pTAVPFMTNnHTQ7gVE5E1kFEQkarSbe+o+kBLXZaZBR6jC/RIfpxbsi8WTRnxc1hWN2/ORzocKIZgB/6U3AU6iRYVTgPIA8KDwSkCF0dVbx2I5VNckmXIeL8c9wYI+gI4gtcEBlrWPutBrl54YnNXZ/NCsaqP+Fg80kdJ/+0tei33fN6a5oyEXVuouHushotl8Uy62JhSRVRqM36gnEGb/9J+Z01Phrbi2ugXQv4SssAqIQs297CmFAdaUgbko8lD678V8C+GBiMob86O7ocSi8/f0QJy5f4u7pNI9kYcmbxt64TRrCz5Li7YxbfiZJdXbAQ3DXJ4OhULCPsS/X7TE2MH8iLvmFGssLhgrUR9pblEu44h1v+nG/++Kk+WGOK/PR1BI5aQKDS6pW+ZBHpRiReWyc+tUclUeJYoQue2Rf5R31rOh196PZV9FqKb4v8n87qn3TPRWIwqg2o90P9X9ruJ8AEZpe+GK/I+h7QDlDtYMv2XkRh+i1w== 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)(186003)(508600001)(1076003)(26005)(6486002)(122000001)(5660300002)(36756003)(44832011)(2616005)(6512007)(6666004)(6506007)(83380400001)(2906002)(38100700002)(66446008)(76116006)(86362001)(38070700005)(91956017)(71200400001)(110136005)(66476007)(316002)(64756008)(66556008)(66946007)(8936002)(8676002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?lNC5QItyiQ0ws4zh+SMskqy?= =?iso-8859-1?q?d32ismPrJyPRPfQmdwG0Y1FyOojK0XEOBeD5wHNp0Dqn4Z1KXeH1dzE/NOjr?= =?iso-8859-1?q?msXb2E35tRRJF1iWwpWGfEiPylVlroJV2wxeuxF0udWAhezbLNing242cOOJ?= =?iso-8859-1?q?F/jt2pT+9uxKndBUAws2GEC4sVCNsE7XhqTkpIkugdOyvXBUq4tqWvM24zLm?= =?iso-8859-1?q?YsbYm9TJQqJq2PxQHS3R2omEbUiWw9fbkvGATRH3Pekuzymhcctn5YjRce8A?= =?iso-8859-1?q?vmoBcQdYjFG9EJJWDR3UrnIet1sKMjK/lNUNhNLvJFEY8n1QvozRES9pW+Y0?= =?iso-8859-1?q?/+ASgDDHC0BZ89rsecQOyN7pLzasO0zqOfnL7vwNu1LDfaMswt0HUzkoHipB?= =?iso-8859-1?q?jzuy1P4eW7REIypNIOfmUoYgju4SZZm8bPMOWfv9iXDYzdHVKxN7GmDPaRRA?= =?iso-8859-1?q?NhcJ0Xz9CjCW5kr7lOKcQhSBK3Uj/GJwqHMRNcTnvWDLL83zbQDcz38BwoZq?= =?iso-8859-1?q?8/ZizbuD9kpmWAVfElgN/CcGBNTJTycy1dhpficeZWSCqA98hQlqRs9t37nk?= =?iso-8859-1?q?A37xO0MNTCmeC/qLLukKICjRviS0bhEuN93xTgZrlp+KSQZX8TCm8ab326AK?= =?iso-8859-1?q?hvXl4UYb2WhzdbIGxIiaupkJpv4XLFx1mCV3CIQTZE+YmYQcg5jMJH921jkz?= =?iso-8859-1?q?mWIbEWCX2plkdW0vyZhT1IYuZ7BAwLqmIWHIoPZj/Z/Z58wQvAEW1JN5XF7k?= =?iso-8859-1?q?kaaLJ0/gmr23PO02q49PpLCfzywSIOqXw9HA9+Bj6OwjmNxXQ5+kYxqlV9Hh?= =?iso-8859-1?q?bHlVitI8ms3LZwNChNochn+WKeqbS9uMhBcb6S4MKxuUz+fdGE2Rc+XKfYWS?= =?iso-8859-1?q?WU4Vic7G1/5mZnxCfaAUseiK1TnmByPIU0mxRMPv7DLchU49ae/nf2eDE7m6?= =?iso-8859-1?q?a9qB23ePMi1TgKMwMyPXmsbcM3TIvWlUWQ7EVzs4xCYS8lE/0He8zbHPQB7C?= =?iso-8859-1?q?j5exoSNIb8rjZrSQvmKmn3w3JwpvrQ8eGWV0T+qpZtWndeoHaQXfzV8z4SD6?= =?iso-8859-1?q?4Ns9AbNqSElYpcmCOJtkl5E19I2n/qq0ge7RdEKXLUxJwhS7w/7leKRCFc8m?= =?iso-8859-1?q?A25ZShG73SDIBybTlJiLgOAumjlT78ACRU201J1Ag0UdxDJDM5V9cVV/YwDy?= =?iso-8859-1?q?xIFfMftGpwaEgZ80X3ig0UDx4gaOk7fEmPd/vroFOG2vhTqaElQMNBSjal98?= =?iso-8859-1?q?l+Z/nd98PcK6S4/GEZ3k6pS1z6F8hT7C/ocl2ajXwe/rBwJ2KC6KoucW1gZY?= =?iso-8859-1?q?SHy+DjJwf/ovNylnmyH1+FIbpC/HywIaQx426iFbH08YWDRkkIeT63l3rUvQ?= =?iso-8859-1?q?4IT/vB/1j9iezNyx3+OEiQ8c29dXER0QF0m3U5Gp4QsDF3Nqh+8mEcyw/a5r?= =?iso-8859-1?q?zaaimVVc4PhT1iqNgTEEziOMVh10b2aCIPoRcXB2tFv7oZcOqegXtdDhBga5?= =?iso-8859-1?q?RRUaOZ/Tt34azwADGsK5yu7SqUzT/BYfhYl41OzyyHBRcIWfI014wu8lKil9?= =?iso-8859-1?q?TL6B8Q5vCB5dmOtDYCwRjTU14zr8ndKg1uxuxBie9RdIwDTLWEc+oC+KcYIp?= =?iso-8859-1?q?Tp+9XfJ1iNTdG8uLY3Hv7nYYpQsxrzlJ2SPyWYDzdVvT2iKSp2UhUcozSRMA?= =?iso-8859-1?q?=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: ed4b5890-2c58-4b86-0999-08d9e5f5ccf4 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2022 02:42:28.6409 (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: enQFwPdJVlub2VN2rlQbXTPTQ0ilYiTfJM9vxAvzxpg3QKPrX23Mfv+OvzXrp/4sZdKciW59Rj5aZuKk3AECsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4801 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10245 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202020010 X-Proofpoint-GUID: yaW09pZZKT9dZcz2CDRy7vqaGX5NUNuR X-Proofpoint-ORIG-GUID: yaW09pZZKT9dZcz2CDRy7vqaGX5NUNuR Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=oiXVEjfQ; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="aI/Kg8Gz"; spf=none (imf01.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: nil X-Rspamd-Queue-Id: BAB6740002 X-Stat-Signature: xht5yfc78kp6susg4xifdkrk5dd18gmq X-Rspamd-Server: rspam12 X-HE-Tag: 1643770626-706290 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: __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 | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8fdef5b83b74..160a2a77c243 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -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); } /* @@ -514,10 +508,11 @@ static void vma_link(struct mm_struct *mm, struct vm_area_struct *vma) } vma_store(mm, vma); - __vma_link_file(vma); - if (mapping) + if (mapping) { + __vma_link_file(vma, mapping); i_mmap_unlock_write(mapping); + } mm->map_count++; validate_mm(mm); @@ -750,14 +745,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, vma->vm_file->f_mapping); } } @@ -2952,6 +2947,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long flags) { + struct address_space *mapping = NULL; struct mm_struct *mm = current->mm; validate_mm_mt(mm); @@ -3009,13 +3005,15 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, vma->vm_pgoff = addr >> PAGE_SHIFT; vma->vm_flags = flags; vma->vm_page_prot = vm_get_page_prot(flags); - if (vma->vm_file) - i_mmap_lock_write(vma->vm_file->f_mapping); + if (vma->vm_file) { + mapping = vma->vm_file->f_mapping; + i_mmap_lock_write(mapping); + } vma_mas_store(vma, mas); mm->map_count++; - if (vma->vm_file) { - __vma_link_file(vma); - i_mmap_unlock_write(vma->vm_file->f_mapping); + if (mapping) { + __vma_link_file(vma, mapping); + i_mmap_unlock_write(mapping); } out: