From patchwork Mon Jun 16 19:33:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 896927 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9410C28B7C8; Mon, 16 Jun 2025 19:35:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102517; cv=fail; b=jRpEjzjcDDZpKq0ndARMNcX9wwniAxqyCIJFA2ricC1U50HYwY67fyBVlhLCsVTNpEdf3uVSa5o81HPHPbnEN8DVVAgbWzCkAGbuXsij/oN8IINUQV1SMI9lwCW3n8WLXawK4NZhpbq3zk0R8fRes3XmeK281oJRkGoLkb4XZ68= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102517; c=relaxed/simple; bh=LXNlvzk+Y4yfFI8gAKVXBBbW/9+0OFj+mgbVLXgIxgI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nuWYS4f2SyzCVZ+E4kDHfWMNrAyLbAO42G7bVjpXpM39iqULOS7p/1jDmaVbv4OK3dyvDQPuCzQMa1QEEUuG/Aww76QcNuvzdLdmRWd72iKucHQubjptzkzOPFCdmvEBGPPD3JkITrrBgfAIkyq6orZOV1UKhTQl9Eh1UerzhyI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=oDi1Zdgf; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=QZFA+j00; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="oDi1Zdgf"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="QZFA+j00" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GHuW14006564; Mon, 16 Jun 2025 19:33:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=PisCcjHnuD/KBBiffaAYhZowH43bXC5Xx5sWxci3I/Q=; b= oDi1ZdgfxouGbxJMgIzHoyHg57y12Bzm8WzO7/TycJCCiPp1YcDUFmM3cFZY2n78 KdTDVhrP0hv8AfrRHcGiq1tMIAIX2YJBinKxNDkMPlcYm+Ed/wWKcT9QEViZlWo6 YsPwX4uufS0R1AbmWPACyI/MYWcrXg9n2rrni6n03R6L443+HuOB+hlz2fNwJxkW pq3EFKEbZZ6B9VnuxsCTjW3Y3MvMgBdBSHEpCWXdeEyXlUeDXhe5w7kEpBgdFhbG 8bTSdCdAaMFvs3kDFMZcU1w64e014LDMPUNE2RcIZlXogHj+MJc2wLUdR98xG4wB zoSnx8KDliMSrUXUWo6g0w== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47900euq8g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:33:53 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55GJAKnZ001648; Mon, 16 Jun 2025 19:33:52 GMT Received: from bn8pr05cu002.outbound.protection.outlook.com (mail-eastus2azon11011054.outbound.protection.outlook.com [52.101.57.54]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yh8bqb0-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:33:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RZaNJ/Jz7/VgrpFULgMNY1Nu4rhT2JYEcMFtqDjZEB/duHNCIo6apGEJXARVpz5xGjbb31EbhCOYZLY9i7hfvHkTAfYkWgLbDTQFKXKfW28+IzGYtzsZD5zEE51NfS0NeQFFPLQji6KnqScYPFsDgByHoa6U6LwnFtBHqfcXVs+sOdiEDflHBDO+4AkWbwc7Y4BLNAcNmqM3aHgTr6QNt4Suwud2jUIH5xSlBsXEO91Mb1nolIMwm0o/NCNeOm1hCCEU5wedZP9OvmMqCE/j+GcJi50uou26VPpVlEIBIFyC6jAIj6nAmam9TTleJpayj4/3GC9KBjLhhxPSvB8IHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=PisCcjHnuD/KBBiffaAYhZowH43bXC5Xx5sWxci3I/Q=; b=x9Q9olioYpxX4qmQqsmzrSlNLVO4D2JqALZqOc7fGilUwuSMNu1Ht3oR27yp/jiJx4qqkXnnqIB/tIcvxhj7IudXlWrAa/AVo7nwM4ihOpVi0G9ovNHK+nrVORg3Q73wtFWX1NjPmUo55GJENZhQjWbqF1IL0tDnG41/zOMfTVsXt3Y2neOUzR2zMvojihHlMwceq5Z0TxJxCCuy4xTVBVD5UqBnjcUiUwzvo2OMB9qFvkXoI5ri5/OLxolA0uR+LaAj/GDRYay+7r5EoZ4SZPps8UvbM1souR7IEZlUQv17L0ohiATHds+4ki2ey5iYjdDAggjsfLUipoIc7cv4mg== 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=PisCcjHnuD/KBBiffaAYhZowH43bXC5Xx5sWxci3I/Q=; b=QZFA+j004qJy3DmWDOrW1nvK8uuTzZBbrlzw/kW0/gWTojDpwtKN7zBjt5slrO9h7o6BHX435gS9qlq7vWMDwYJKn+uI3QcbayjisYRrySnv/AsYkJwUXzBWWeDDdjq459o33DEgwxiiDsBhbtqKhYMHhoq3zI0dYEbqEgjmbBI= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by PH0PR10MB5870.namprd10.prod.outlook.com (2603:10b6:510:143::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Mon, 16 Jun 2025 19:33:47 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8835.026; Mon, 16 Jun 2025 19:33:46 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , Jens Axboe , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , David Sterba , David Howells , Marc Dionne , Alexander Viro , Christian Brauner , Jan Kara , Benjamin LaHaise , Miklos Szeredi , Amir Goldstein , Kent Overstreet , "Tigran A . Aivazian" , Kees Cook , Chris Mason , Josef Bacik , Xiubo Li , Ilya Dryomov , Jan Harkes , coda@cs.cmu.edu, Tyler Hicks , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Namjae Jeon , Sungjong Seo , Yuezhang Mo , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , OGAWA Hirofumi , Viacheslav Dubeyko , John Paul Adrian Glaubitz , Yangtao Li , Richard Weinberger , Anton Ivanov , Johannes Berg , Mikulas Patocka , David Woodhouse , Dave Kleikamp , Trond Myklebust , Anna Schumaker , Ryusuke Konishi , Konstantin Komarov , Mark Fasheh , Joel Becker , Joseph Qi , Bob Copeland , Mike Marshall , Martin Brandenburg , Steve French , Paulo Alcantara , Ronnie Sahlberg , Shyam Prasad N , Tom Talpey , Bharath SM , Zhihao Cheng , Hans de Goede , Carlos Maiolino , Damien Le Moal , Naohiro Aota , Johannes Thumshirn , Dan Williams , Matthew Wilcox , Vlastimil Babka , Jann Horn , Pedro Falcato , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, linux-aio@kvack.org, linux-unionfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-mm@kvack.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-um@lists.infradead.org, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, linux-nilfs@vger.kernel.org, ntfs3@lists.linux.dev, ocfs2-devel@lists.linux.dev, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev Subject: [PATCH 02/10] mm/nommu: use file_has_valid_mmap_hooks() helper Date: Mon, 16 Jun 2025 20:33:21 +0100 Message-ID: <5f120b644b5890d1b50202d0f0d4c9f0d6b62873.1750099179.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: X-ClientProxiedBy: LO2P123CA0105.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:139::20) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: ceph-devel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|PH0PR10MB5870:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bd43371-0c5b-4ffa-d82f-08ddad0cb66a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: yB6MK4kQk7znYLaRI1/05ScSAn5/ywfj+aHpPk4tsxbdMcIMg/xB/7hnQfu6ebuoKB1Uuv+6BoXVOPq66f/854sOTV0NvRgBOe0mv1qVyPvDnzeCnMjHbZ1Hx1zwdjaws/ApY+lQCf/jOlwyUUjX67ejptewh2bwxuXZyaVXQNqs68vSzi9nuwIei9cDCYMMmfoTW6nqzKWAJfAATdSZs8QGKYO96smjcBGkj/xVX79SdbV5DHH3Bx6v7XsOcfOKoLV/O9F70STAaaASyMOf1NikMH8BCDuIj+pEIS2p0gMpHsX1Hs3uCLDJRKT/NHDgMW7dQwlORuz7TJkOw1rCvcMAJB+DoTl8JaxsMa19dYx4U8bN197LEuf1oyDaSeHXIeBlYWx9n+s9AOioR/XpTb6ZOyXHJei6FPtQNS8uELQq+tprdfNig350LYMUSsLvbRJmDRlPQnjRa3oh6CVEoPc6ALVFJuFPB3bHPy79DhHJJizWlVV3wvj56M2CieBzccaiqubw41xI20JSRA3gyh+I1ZcWZsHtm7R6mm7Q4Xr9Hcq4lSBDNKTLQSKlWZ7oY2KNRVlqBu+gljTtGYFNm1B3EXo1z7Nr0IVW1S8pj3+2aZAS2Glu6VngNcmWjavg736xb3XJRXEsZjr4dqPbQfqhVuyrESPsiDz6Ws3v3Gl/4xdqXvLvLaFS9225opCR+dtUPcdIMNfJc0hVV3wDrYBOoOXPfvkBi7zikNL6VpZmpI+6LEtC9bKqoX67467o4NqcKNZbY0jRNAFq/7mbdF45DN60il3opNe8MjZxM1HnGCWMwaf7sS9r/x/dNx2VWzDhFxaMP7uvNcSEt+w8CmU5B7EkmtqX4ukKaj/Bp12BC95zN67VJ6i9yGoLVGEF6sEaxpe+xkhx4gAmOwgvESExLyFkryRZ15JAHwcMEVYF3cR8yGLRtu1ZTjIj6oOF3uhQP7ZRny6BQt3fhJvL34+w+2BoiGcb6JHvLxERhhoFKiZU7bfM/Spg2scb07c4Tyvas4xnn8zuMNx8y4RWFNUtaQmxXxe2QUyD5WQyLkEwvs5xZy5dHxLs2g49EBADq4u9pWXDXdKfeEWff3ne2080CbKEFh7HTI7ZbohHtITRWJq7BJgHJMPM90XZ35gHJcfXkEMuUx6Y5NlNv2Un2njdvd5xoq/Nfd0GOQpIXMUsgHRpGmNe9DfEKwjclirt/oFno/VJaDNjv9fW2rQZuS/pe4z+OmiGyDGQfsvaZvlOoQf9xcbbcGxDajUSIxEdY6a1bJujOuFMrYFqJDn9g6zvzTV7+i/o1lNEr0vWQsdaua3qso1ewlTFDRvV/U9kShjL7ifcdQ3VU29TCWfir8yS/foFoFhrc7Yv/bFjzZtepdXrwcNlLDR+VVQKXk7FjE+fpJwpAY8jKDIa7TrJn8tOSUcl6Fq3bogGrkknfKQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR10MB8218.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(7416014)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 59IvZN+XJ2j5017eL9ZjpDjyPykBezLGPayHd4p+xxOz+9lcBDGx/ao57R/i5Ak4qVnP8TvQfSR88eodBhNw65Z5a6ovXRtyK7r9/zCgf3fCXfHRcf6M5EAilu360HXZSsjkjc0NtRb5LUwwl1HBn/mH1pQY91al2C7aXkkapPUuT7FDnZVwslcYDvmxn7rXU2s023e+rDvyi7NrlS/7ritWsIWVNFufkCdk+WvdL7gocyouUWVIXG6ObXPMqn1lzFI2JwxVDcCqOBQMJaavJSyvWhS5oW16aDumesauUx5Lry7trzrXwuRlGwCOfA4r4NBX3X+HRfBibqH5xIkfwcve0qkY/wcSzUt5pZ5XKmC/irKH3kTVIIOEp/3fVY2TohjwVPHwu7SqX119SNDdD6yVBtEJG12H0J5NOq/M7gNbAVR6t9MPsGgeIEEv4QD6/PQ5yxVZFE/7nbMKc3PWFoHY8AerxNuKgNhikkYIWIyITui+kh8WJK5d59dlTqSPi0HVCL/lZH0SrJbOh3rH3HZcMrnNz0NU2VxDg+u3eFVsKOWCI2L12kqcZ0tbLrgoiMpM1tQmv5XeRMAsKPEZwJ1W51Os+t0ny1Pep5qep/Gpq2xPtoSr/2hunvNR5sexchjMszG7K0d0XyGRMVcFSeFbcVMuoGrpI9FW55vXHBvrIHnv9fSSwzzC9HKugNcmU3pTqpNAgcqRZSUr4NXZ6g6A+ZQWjvslvCzsScONQtAnXbbrLW2hMaplSEhD/5EbZ92x/s9+mfNmU3YPMykWAMFyZ8TrEI/zkrhVkzRp/poHzIqNI1/CftpoV/izCTJwvxMLuvTrVXhbay24fsAT5GaZIcLEIe+9wajkXM65vuD8Mlk3v+QNE/+tUE4s62oFHX0ZIPUj9oS93CXq64fbTBBgQ6V3mPdVe4Pizwg/ERBZkO17XcDTr6eI4tKo/AgKh94thEqlJx3xcsE1Y4qXcRnws41+qcfLbHlqW1lH9qPTDCx/7YatqTl8ztuGFl1icewC0lMpMHaWZOWzo36GWWfJkfK1RZEFdSIlLZRjNiHy9N1yTohPhr6MI30wPG0LiTODf6Fvcfnq7wxzpKZXY8JYPyIe7U7TM7VgD0KCLPCsLJOADprvhLFNYyRZpHk1MSy5zUDcFFD7MqYt/PJga86hMwYuhcCdN92kFAeXlrgCXROnH0sARodl94smMNDHHUWHLolCsdBRUidawcaverFQiVRlYMt4qS0Sm4FI7QDFYP4K4IlviY+RCNg5AX+rj2kYsnCiWz3xMXmrxch2wsKTa3xyXAHJGrUDcPTHB2kOY6+Eq5kg6zyUu20r0l5JCr56suTRioGDW3GYmc+zhYRhiVCnwy5kjgYpn+SnNZ6E16bXxl0FbF0ZQEBFOQNw3btRjGxEZmYn5VxcqsvWlf0WUo2bZGp+HF342XLHYeFYfrWTaIVJYydAF2d3o+Qv9XKJF7w2isZaUJNQLWm771Uy1NC5UpbY6iNjdKOvcdKbBEhrtZvZ+MDFTCg3R8Ce8Sdj16Xa+NfWepgg4unUs2/pSgucY2LVWiFuWYEQMhW9pjaS3wBEPithevviJvT0YgW83Nl6ow+f7IkzKusg/A== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: QWpaTl9xep3FCX3OMrR4Ps1WFkSiq+d1ldTwV/kHQfN1unqUbBl/j/CucCNWQgHqViHFebftCJx9CagU1FqiriuWTD02m8KQ3BpNkBmw5AzUV6vuO2JQdhO9K8pf0hJHdAVcYPe9Lo8tIky1KNbZDGmJhUZqOVkOBpfNB3e1TTHpK7M+XtRzzi+pLA4jXwY7swuDDgejWb8v//U6a9b3WIQTTbbYec8OhZ6xp+YhxoRpj5ZmTQqM8MTjF7Ve7StVzbsNJkY7LP9uP4gq3nZCmTxQ63KdL/5BavNaWNdUtFrS8nMeOGj2FBWJ/uqVY/wMt7P00bmH3/5QFT7+SVF1S9ehqrS37Fa1ErrhbpAbkar5jR/UctrSiSOnnb+ZNHZEjjRGUQkjJ42VzbelWMFKEfIdRSyJHhAdEGsnWCGMiqP6qMsiVRgY5ntKqp0FvaVk92LrTCa87D+G6fqv+j6vUiMrkurPlb4MTYMlYR0XSIFmqV6qaVT1P4RiGkPzWQ4ltPkfQeGMqDtJicls13B+XKf/Blik2OIJbJlobvCNnkUayix35pRHiWTrFe6u3M4Xew+mGLYuPNFZBToLkRkvEGUeJqYdAxXrG8q/Ky4EZ34= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bd43371-0c5b-4ffa-d82f-08ddad0cb66a X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 19:33:46.9169 (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: j1EkQq49moKL32DlzPNU0PR2RtLFQxrU6Gr/dPNOZa37RH7MFeOtHHM6TJR0UcknQ4AVKSalHT126dBat/RqiA9rDnV+yAkcRWcBcup2USY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5870 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_09,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160134 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEzNCBTYWx0ZWRfX2T5yh8mnsqGL gb4Z/YHOlEZBf7NHpcdEbMwNVG5BnsMBPcLGc9fbMX9k0KgHasuZkAc/gwNFaDBmrHXGRiT4lfl aA9gmpi4LUHXjKAaBAtGaCtf4sHLAZFXLD4dLPz2lM01TLCn5mph9pCC+hO43HQT0DXC2SWmAQs JyH+c5A/7/nWnZkIc4aLXpRZ39OH6tebZCP4sYC149QIw2kUWA4ou4ny1793ZdJpzQGFOkiqptA Fc0jt+xtSPjdmtTJVHxtblpsw5/fmei1NYnGnkkhIkistHstje/5Gio6NYM9AVb17tZP7h2P0Cq FWPrQ0XV3ESgjUAy0/dcxpGJJ3k35RyPnv15F60x86iXNZ2o1168b87Xjmqz1FOK9jdQKQqA3CM ceDIFY9CgdX3sV726542CswUyXsO6rIPDy10mk3P825KNQ3Cj6Dk0by0B+zilmoPld5pNTXz X-Proofpoint-ORIG-GUID: uezeSXpCKSe8sG97NIwBut55Ekd6B5oF X-Authority-Analysis: v=2.4 cv=X/5SKHTe c=1 sm=1 tr=0 ts=685071a1 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=4gqqgb9KkQYgpC1g298A:9 a=zgiPjhLxNE0A:10 cc=ntf awl=host:13206 X-Proofpoint-GUID: uezeSXpCKSe8sG97NIwBut55Ekd6B5oF Since commit c84bf6dd2b83 ("mm: introduce new .mmap_prepare() file callback"), the f_op->mmap() hook has been deprecated in favour of f_op->mmap_prepare(). Therefore, update the check for file operations supporting mmap() by using the file_has_valid_mmap_hooks() helper function, which checks for either f_op->mmap or f_op->mmap_prepare rather than checking only for f_op->mmap directly. Signed-off-by: Lorenzo Stoakes Acked-by: Vlastimil Babka --- mm/nommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/nommu.c b/mm/nommu.c index b624acec6d2e..38c22ea0a95c 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -719,7 +719,7 @@ static int validate_mmap_request(struct file *file, if (file) { /* files must support mmap */ - if (!file->f_op->mmap) + if (!file_has_valid_mmap_hooks(file)) return -ENODEV; /* work out if what we've got could possibly be shared From patchwork Mon Jun 16 19:33:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 896926 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 35F0628DB52; Mon, 16 Jun 2025 19:35:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102522; cv=fail; b=mrctm1OirYZpP5VEG62pyhKpNAIjewm5In+Nx+Mp6NpZE1SqBKhC5I08iB8VG5hwXqYoQ1UcoSrUGlSvzi5SeaBumuZIjlIbWMbqvZjeYQuEJou9VP9QsPBNaklem5qsPKl6cdjxjIsu1GUdhk3OumG93+CfcoLeB4x4tbqsavk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102522; c=relaxed/simple; bh=/mwCp/4udnbGqk80i9dyqnRhCS+CABeA4knMW7yyEDs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qtyAlqxmlsn9QmK5r0VYceMJS81ErYzjZWmyk4DF6lpAPDekjtJeVLfiEOfnOvbq3s1Ng2SWkEVAYlUA8eI4Dn23zpztecq7wpFf1B2Va5UD3TmtM0NS+/yomkGncaEsAd0V3aVn/xZ0Ma4hRDu3Oj3afC3/TS1wbGiRM6+QpJM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=eJiIgcxP; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=WLgkcKQF; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="eJiIgcxP"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="WLgkcKQF" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GHuSI8017860; Mon, 16 Jun 2025 19:34:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=LW2VP8yfofGIRzehsz2ZWLW9EIqsqvISQKJ61JouG/I=; b= eJiIgcxPFKx5G8KWyEh8Cmr886kDtfCuT32DyykyBQGsuNzdmUURHN/xsTtzYExY 3njJxgURjdtz/ifK0juFyUA93L+vfVKkxUIgzvFDyVGeoiZOSyAoBflFdJxCWOoF oLIXXhVwVm0lfF8TbShOIMU5kxUZUrru+A7k+09jmMxRFqb2M7+WphXDWlWsSfZm MEI6IiXz2bHT7vq3dfVeRo5GtuFBScToFn9xt3+O3gWDcFWUOrlAo3AZxmc8l8q/ T2lgDbk1Hg6Fk3+nXC/f0btCC5HPwvz0Fbrvbt1UDnBpjSV1tvIzX8Sp8lig13F8 Y6X8rHqkCZ170vE2cvBVnQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 479hvn32kq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:00 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55GJN1IZ036378; Mon, 16 Jun 2025 19:33:59 GMT Received: from bn8pr05cu002.outbound.protection.outlook.com (mail-eastus2azon11011029.outbound.protection.outlook.com [52.101.57.29]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yheuf4t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:33:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bvkuzszHzfNN0+mBpgY0AxpUphOZuv41O/lGxnXNkNHEoYW7qo5YVlnAJmPRrC31tgkbTfte5kGB0BtAcbdKHxirZANBgKsUYgyrQ6CEfyBFzzQJ2zwYMFNBSISzgmosZnb9zBqML1A800GC/AiMTjnua59iyxR28wLj5eTowG9yIzqqgxN68+KYM6ZUrlCHD9KCYNfhAXQ+aD+xkW+uQNM1iXn4FN3IaETtmL0GZeVnz52aYl1sM1+XT8aL8eJIlrdihxMInd/clA8ihItfi0OR/6qMaMDyDSQYgGSucRkvJbxPLs2oVTL7zOr0tqXr4x3cbD0cmBR4/OfKW4npcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=LW2VP8yfofGIRzehsz2ZWLW9EIqsqvISQKJ61JouG/I=; b=UCjqbnY+iLK+Tznm3c3eNsxaanKKbLvhKYY7LRvPo4+yqdk/RsLm+gD7A7yCJsKnAmgduFbVgMpBYFquEdgq25GK/gvVFDOL7w6UXWagwMmK/EqTHtD0iRnh/c+sG22ny4SaXJT2Tl9I5MYfDBsAxg2gYvJru7mwITdMyhZMdOUM2rhPXPrZBovZluh2MS0KjkEpsp9yK/0QJckHx/Tcgq0fhBvTAAt5PdNvB1xP2fk0Fa49ViHiHzdsNYaWcdw1KF9SZbhKfv6KuOW6ik2oFWLBkrUxFY1Im4bGX0DZ4vdbc49w/DTKjRJXFKd4/KxA4kHjIbLP+VWTwt2+bMHkLQ== 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=LW2VP8yfofGIRzehsz2ZWLW9EIqsqvISQKJ61JouG/I=; b=WLgkcKQFX76ox4GJIfCPdGg+2dySOsb/JP54UhLhZygEX/E2zPagrdQJL5npQxjALzjl2Hi4L+aWX/szaG2U//vk1gnw+qpzTu71Vl9OOVI8ymK0Jxgnh7+++4kHhvEBVxg6Ff0CB1h1ITgu6KwDP++R0xwe6UlzV1FslBetWkM= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by PH0PR10MB5563.namprd10.prod.outlook.com (2603:10b6:510:f2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Mon, 16 Jun 2025 19:33:53 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8835.026; Mon, 16 Jun 2025 19:33:53 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , Jens Axboe , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , David Sterba , David Howells , Marc Dionne , Alexander Viro , Christian Brauner , Jan Kara , Benjamin LaHaise , Miklos Szeredi , Amir Goldstein , Kent Overstreet , "Tigran A . Aivazian" , Kees Cook , Chris Mason , Josef Bacik , Xiubo Li , Ilya Dryomov , Jan Harkes , coda@cs.cmu.edu, Tyler Hicks , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Namjae Jeon , Sungjong Seo , Yuezhang Mo , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , OGAWA Hirofumi , Viacheslav Dubeyko , John Paul Adrian Glaubitz , Yangtao Li , Richard Weinberger , Anton Ivanov , Johannes Berg , Mikulas Patocka , David Woodhouse , Dave Kleikamp , Trond Myklebust , Anna Schumaker , Ryusuke Konishi , Konstantin Komarov , Mark Fasheh , Joel Becker , Joseph Qi , Bob Copeland , Mike Marshall , Martin Brandenburg , Steve French , Paulo Alcantara , Ronnie Sahlberg , Shyam Prasad N , Tom Talpey , Bharath SM , Zhihao Cheng , Hans de Goede , Carlos Maiolino , Damien Le Moal , Naohiro Aota , Johannes Thumshirn , Dan Williams , Matthew Wilcox , Vlastimil Babka , Jann Horn , Pedro Falcato , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, linux-aio@kvack.org, linux-unionfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-mm@kvack.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-um@lists.infradead.org, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, linux-nilfs@vger.kernel.org, ntfs3@lists.linux.dev, ocfs2-devel@lists.linux.dev, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev Subject: [PATCH 04/10] fs/dax: make it possible to check dev dax support without a VMA Date: Mon, 16 Jun 2025 20:33:23 +0100 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: X-ClientProxiedBy: AS9PR05CA0263.eurprd05.prod.outlook.com (2603:10a6:20b:493::35) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: ceph-devel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|PH0PR10MB5563:EE_ X-MS-Office365-Filtering-Correlation-Id: 64e62733-a901-425e-77c3-08ddad0cba86 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: Yql6hMCo4wYJ8IKUwX4yABlrxBbtuGvQuHVvF5zHUXSFId6GcspKuYP4Vv2O9u7m2rEdEEWMqaAffqUzPcPvYYfWmY1KnOjvjWhACOhDRthkIL6KU3Dvul3mwTKxFhvZKYEMAiFK0uHVGCYOu/ZA4x882uK147DSa+4bwzGupssZYkThsu9t4Kn2Ikpg/ZQcZgoez1rahGYTc33TiUa3vr3ljaEgbV84uc6e9/Nt0Z4QmN5lu09v+ND5N3gUz1hHXJYFo0RqJRRzpfUE/Permrun726c96hRL7dopC1jXF2nqeliiYbV/Y2tyYierV3bqSKd6Ys2Tq8b0B1bYXo2QjK3IqSVjI6LWc4hLqF/R+1miLC6FPog4cypVlre+hf83x42ZoTZS2d/HRwfbVBjf++wAT8r+CSiRv+sjJp0Mtwb5KDQdgZy3a9Z1lLFt9s+uH0SUazUeFxAxV0PveiZ8eo8obKG/5FmxG7vudOklNsOgwtJoo58EQzALMVk99zOQ+Sw4yu5lXfIrtdR78ulZhIpiH+mnwjPRPHkZfjzYuSaQodm/M5IQ10UUi202Zm7To7j/Q9Pc4yIJmmVElFMbU7Ftj4LjK0u/cvTAPZhRhtROCAyku/ba7LYXaYym3i1WifE7vAzDfBlmGTAxQYJvo7uZdYqvGqSe/uMjohxs+cAi4D3JlOaD4dorG+qt8tbp4am7EOri4h3RdBYLT8JEVrZzYqQKsJos5Cp1lhM2gb1im/lHU9O0/dXSBEaylivsR38dd/wEq9iyRUMTCEVyYkAzoFiNNtokj1UOKeVKVOiXHXmuDCGVeNSnaW1JpSXZBTkxOKi8LBUbY2PhMcjPaps9LkvsgBF4uB2KlTdfJEYBoehoVa+Fikz60eJBb6WPXBN2FyDx4Uf6rU3/nhjp7ujSdXOLePjBfKsKNPmNnKFQonzAqFM/ck+sIdvX9nmPeZruZuGw2ElUcBTFqKBT5TMhbgdp3Tx6nhiKx9Zpo0jC/6elZO1y/Z7FRU1FuHO5OdS+ZDpufrxYIJvyaFNRI43am5a64Im3PLTN8EYMrfcg+QPYWdlcCQYaVVnEfeoYzu4asK37gSKp0T6qKO4zyWCc1fTsLxE9yWT8126fVZvCBKGuXtx1d+PQRjYysmdtD7lY1Kmv8ixf3lJrtYJuKUNWhCnTLN9NecRmavmBbtv4PNPEiJ7c3pSCp1+c+m51PhcgEOPYARlT/XhJFaUVl4C/R952KKP/qhI9HRM/LliS/WdYtNF4n1ZJi6xJE77VN57el1ZfCOTmHtJeceHgAqw+DE242zSgDiuB4ZszBj95Bm8KtXsftb4BRkBI2Ao24Hiq5D8vhuvQU9kUaPhZWwnDQnSE1V6aIGTB4FpEqBJ/yVclwfBDn8l2ON/IoJ4dE08JN/dy8PfNbVDZ4XdbOumkWL2hEtRyPrUTba3X5Y= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR10MB8218.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hGQXiwQgFbQTe2vw/b1zCAgD73mZ9q2VUy7s4MuX+tvwBtZd9pkaFGsrJkAnovDMx63XdP61U1PfC0BGUGB9hjA4HSnTr1NNZgXU2yi92MMN9IskQrQ4yipr6fDvuj4pECTuAyIfnA7UwfDzjdjHJOcjfnE6XGcrBYRcCMPJBsYx+nAJay0oz7ci8w62rwEIJR5OSi0r5TM3MyMbUsAIx7R7YSaE3Z9/rX7TR4yG0xM1B8j8d5MrToDJtCHAG5vUVYcL2tr3rYH6Kw8d/5AolipnvLv0yfnvGOTkGCa5bVWDtFIFHLqCRCyWfINoyrZY7K3ZziSiT9LPF+iZNZ6cZDf37rKamAqaNLwZgtsWR/hq12cOPxK8nG3exeq2asRwikkZ73hRFP5Wq9a1kLyi7plWuCiA7Yu6wmcU0R+iHwcGDWxeikRt/UugbsHqBqgCXbuhNEEN0mDP5zwPG2IcT0rGb3OmEWC/qsMTW4PJnSNptCJd91lfjCFa76gtddtY4HrMT52G4djq8men4an4rh5fyx9WOwT7KEu7FkELR3rsT3ZJ8JYYsmoth8SiwGw3ka4YBmC2OeEBpw02ZAOSh/0HK03gBLRhj+iNJzV9tFyoAUC0K4buP2qny0+YmU7Xu4hFY53+rhKQbtq2UgR1TPnwTjvfpd3FVetTj9xk3+dFBfrO7H354igAlROmAt86IXJ4ygklUC83EExZJxXOi0QvNkeeshoupZrV2CQVTDH/xD8ekaZudLm/WFBxbKueOoklpMuQ8M5IUE8wDpAqk5SinT00LbMvVlj0jbkTcrOoKiP9FvVuTVvomO956GmFt4Xe9h9jZD+Nm+ozF6deFmkBWPmcRzLlqi/cBc/2ioJ1TNvrrL7S7TKbthDeu217txkx3uJ2mA79Fb+YoohMkzf+6sDL8J2NX5fP67rZNuV0BHhZZEPebs1kgsa5jVGl3XjPfqmmr2BOu2g61Nkck3/rNNFKzAcmu8Ldta19vDI2giO0+tDZ8lV/MzfYd6mt3y6oqIdmcvdM43z9LF+yDArj0vUxXALKDET09UfxqiHoIA2lLxcUipyh9oCJYmLNfyTXlkBBKeGScLbNjtk4Dt9zQKdyICLpJicPLVnRwqVyZFya38YUpbzshytjnACOpR9wrH6WZL9pmCyJUrpw20Ud+DCbex9v4Us3yH4MoWIGAFO763n8dAripeZ5CUKzja2v+BQxCHSddWrUaD5VT+Qnx3f6LD1dQGas3uVewndysUo342sqNnj7IbLT46e1NJpPna0hQyWPuzR8SuFA7KLXtf65PELl4hnWGdpbETZ8ksXB73NyRQM23yHsfVrpWw9e9RruBmKAWqFveTmet+Ee1wismWyBc/GspeoEWfBuZ+LnT69mvrxIYfDEAtjQw8nkJj/dBXCTwMOTPxg+lZB44PGMfXyEPtPA7655Lc/tXvV+jid7spid2nWASP3p6R+pU6k5hKsFR1Hi4YuK3/eZTnii10kEr6bvGEVffUE2sQ2wRTSkLoDb4AGACnRf/0cvj+lq8dvigbkftHKQcrRBkolhLaEIMaLXtbbhhhUxdL+os38dUNd9B6J3kL8+BOZDqxYDVQL9F3S9mXCRvA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: pjOmgsOGHvsW4mWwScbxkAcBTaS+ncz5w8wxirnlxLfcpb9qBs4Dui4A+GYx76uaXFGAw3NPgxY9Up8jNWChLjr9HBN7e+vOnnrdF5tyjujdDkQWQnYWa7Nly6RuFFKKAYH5TRQwc9bVE2FfSO9EkxU43A4EapvZvqcXboA0BP5DOkYJ9DEvPaYivQ1a5PyTJo7N+vUA2OlKlFIJR59NoDOZkxdkwTIJGb+ELPx9aLRlQUptUok9WgoDrSliFkkqUNu5MPP6Olsj+xEciG+3vHsCYDgT2WKbglMVswDuLEitV+wbxd5vLHrahVo9dy9Sa/zjtwViD2CE0ImH/04ON0vEa8Gsv9Kxod/t0yg5W46bc6yzO488wXX9p2TNNq37V1RygHTMScu9uJH2kz9RZNpkGUgXL7SoIhUHZVvnwWReb4vOTLX+7AkFsph0X2BYDQk1kZf8ShFz/RHs+HYK0WMIzMBSUfvLJScHlPYxeUUc1hGyBfFmnVv8U6SZHxsrUOdnU4m1D0tY2Vt9ZcRsmOXDsZFrs+L4DqmcGsNQdRL1obskaSQMCN7HZS4IlMG74o+P0p+4ScXj/tI0tbRZtVF/lI+ApzPvvZY8a1LawKI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64e62733-a901-425e-77c3-08ddad0cba86 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 19:33:53.8439 (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: fKLM/DJaZO32StAp525/syyOoY/t7EmGavfpqWRJVGsgHKIZdmc9GohbxZUTqjNV8axl2PofqS+q/JbSztnr5gWYR1zlxwfEyDEhqsn9sno= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5563 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_09,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160134 X-Authority-Analysis: v=2.4 cv=XeSJzJ55 c=1 sm=1 tr=0 ts=685071a8 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=1PUvNFCg9JWibKYo:21 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=vdSroFb1ziFuJU9_f_AA:9 cc=ntf awl=host:14714 X-Proofpoint-ORIG-GUID: F9S0gRpxjkcBncgKwUOnZCfXIVFrVQG7 X-Proofpoint-GUID: F9S0gRpxjkcBncgKwUOnZCfXIVFrVQG7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEzNCBTYWx0ZWRfX45vKnbD+HwZW 7ouQSGL8wfhUetNTH52TVv/d0TpwA+85nDoDZOj5EaWXCtWKJdvCdABJ+WBphp2J2R8NOmBwsQG XL6j2h950bcfAmifJtRxob2XriS0VMQ5Fd6Blw5OmNepXDlwQHCVgsf1GvZ43fpPeOuuzf1Z6db SCTggaV3fzg9bKIE8GEwYgVauzy6NvxJjQoCRdgYC0JKvwzc/W+PhdnBVZ5PY4WONJM3vzzJ+Sc 56waCLbWEe/tjZG8cYpdLH66ZK83jFH3+/Sqt3stAlMJnOSjDY6HY5i9pS5OeJHwG8QhV9v82Sq rb2/DT2GWF4QDXDnrNFs8Y/YJWfcHuZdX4Qf/4JQIrfg22NGrnpiXQ4JlJmE27XUwhlGaE4GODx 5BqyQoa8udVlQdKLydvcYKAQVi6q7zsoHcUoCpkRGvJCPmfyc7iRXLBpPYZAQLKFoK5Ru7b9 This is a prerequisite for adapting those filesystems to use the .mmap_prepare() hook for mmap()'ing which invoke this check as this hook does not have access to a VMA pointer. To effect this, change the signature of daxdev_mapping_supported() and update its callers (ext4 and xfs mmap()'ing hook code). Signed-off-by: Lorenzo Stoakes --- fs/ext4/file.c | 2 +- fs/xfs/xfs_file.c | 3 ++- include/linux/dax.h | 16 +++++++++------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 21df81347147..08a814fcd956 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -821,7 +821,7 @@ static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma) * We don't support synchronous mappings for non-DAX files and * for DAX files if underneath dax_device is not synchronous. */ - if (!daxdev_mapping_supported(vma, dax_dev)) + if (!daxdev_mapping_supported(vma->vm_flags, vma->vm_file, dax_dev)) return -EOPNOTSUPP; file_accessed(file); diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 48254a72071b..ab97ce1f9087 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -1924,7 +1924,8 @@ xfs_file_mmap( * We don't support synchronous mappings for non-DAX files and * for DAX files if underneath dax_device is not synchronous. */ - if (!daxdev_mapping_supported(vma, target->bt_daxdev)) + if (!daxdev_mapping_supported(vma->vm_flags, vma->vm_file, + target->bt_daxdev)) return -EOPNOTSUPP; file_accessed(file); diff --git a/include/linux/dax.h b/include/linux/dax.h index dcc9fcdf14e4..d0092cefb963 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -65,12 +65,13 @@ size_t dax_recovery_write(struct dax_device *dax_dev, pgoff_t pgoff, /* * Check if given mapping is supported by the file / underlying device. */ -static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, - struct dax_device *dax_dev) +static inline bool daxdev_mapping_supported(vm_flags_t vm_flags, + struct file *file, + struct dax_device *dax_dev) { - if (!(vma->vm_flags & VM_SYNC)) + if (!(vm_flags & VM_SYNC)) return true; - if (!IS_DAX(file_inode(vma->vm_file))) + if (!IS_DAX(file_inode(file))) return false; return dax_synchronous(dax_dev); } @@ -110,10 +111,11 @@ static inline void set_dax_nomc(struct dax_device *dax_dev) static inline void set_dax_synchronous(struct dax_device *dax_dev) { } -static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, - struct dax_device *dax_dev) +static inline bool daxdev_mapping_supported(vm_flags_t vm_flags, + struct file *file, + struct dax_device *dax_dev) { - return !(vma->vm_flags & VM_SYNC); + return !(vm_flags & VM_SYNC); } static inline size_t dax_recovery_write(struct dax_device *dax_dev, pgoff_t pgoff, void *addr, size_t bytes, struct iov_iter *i) From patchwork Mon Jun 16 19:33:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 896925 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D84E628ECC0; Mon, 16 Jun 2025 19:35:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102523; cv=fail; b=jY9lxxxhwr8N9VOrHCiRApfua4E0emc0GmETQ8CuJSAJcA1R2HUY3PpsBjxCSh/nKfFl/qVOhDtn8gz773HzBm6kfwTDBJpVFBpGYDYWUwdbPwHD2dULpND/xJzbScuuZNRhwOOfldMuiV71KL54C93/TMTiMrZNdPYCJtocQEI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102523; c=relaxed/simple; bh=1fkdlkI5B07Dtz3V2UVu5qjJLHCfFG2wlXrObLLlTOg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hgXHHy1PMm24kukJW99ZlIAAYBxVLUcr5KyjuqgNr6qLevzz1U0/5dawPCIBT8E9WLEpZHDi4KhcTK4I/9ErD/LwrI7ztRxLd/B6cVP6v/3uIPy6C5C4NtBPLOGXpaNaoqMYVVjBwAE3hJRZU/FpXC5T0tuoUm6Z3+h0jCT8i+Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=VReEyvIy; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ApBMHSeW; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="VReEyvIy"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ApBMHSeW" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GHuWqQ025026; Mon, 16 Jun 2025 19:34:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=xQ6It7ceP4ge2wwkA2QHQTaGh4eZZLUU0skN0ZdcGT0=; b= VReEyvIy5ymV+EIkjiovaZO7zbuNJwNV25YZHuNpcCUdVP/AzOn+RWkVymg/WvHW IVFLb3rPCS6XfV4ibCLou72GogG2RMYAasQLLAev25+oJXBZQUvX9S7wVsNTTTZv Q9HUWN4Ha7Pik+1/ySEtt/ysTu8NSyzCSc3IAyx7VGqLCMNqdnCmSy9otHO1Rm59 Pe9aFnRUMugJrAz4W9EJ+1a3WOhSwb42ONUAE/Kg2Xr4ft9Fg1SD8BMhGaPh3v0w ms2qkATp3tbfHhl4T72p2FBEqHJ0vQAbO+0VQBi4Kurnh5jidtvLqogfckfhr3y3 33gvLFF47Iiywna4fNd2kQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4790yd3nu8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:06 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55GJ6DKK025950; Mon, 16 Jun 2025 19:34:05 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012066.outbound.protection.outlook.com [40.107.200.66]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhekuqt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hFnWLpGaK+1gwCNKfi4TjcF5WPYJw15ZV4W8mdPy+75ej4/Xqdu22dyLKoM4Pelz6uF5EXhYBHjK2P0+eCXnHQZA3YIrn5fXnutL1Q2BqYKKkQhHjqbnMOr9FyjjwPasdprMVV3M3YWKN1gMEZz2sd1ynkHxNQdpTmZxCyo1pvp5YJvP97bkB4mTBo96Td8GwBOTjWQ3wCxrfjgByvAhS36yU3ZEqdRvnK15GZ/mOSFsqeo9gsXGk1UDs6obwZi08FPf5u9D2wHci4trbTNJFIVTsEzahWd7bQFhk7/5IFjdTehjtVgCHpx2zgOsqRElzpO3j2Tr7ABy1sRMMvvRVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=xQ6It7ceP4ge2wwkA2QHQTaGh4eZZLUU0skN0ZdcGT0=; b=OKoZgmxKsOmmpkGwDOsiQAGkEDI8+op+Ovalf/QNnvsjztRrDoz80ZabLmYx/snCxhtlWAG+iyOPIRTHHPFcZuVtgZ9NdCTf7QKT0lb1Mjgpl2aY2QpyHcvODQSK/el5VA9Qd0T0sR+OF12e3AVHcfPSD8IQEF+MaMNipa9Akm5OocoiwPpm6FCoCzlF7LAfSPxoDuq/PYpRmldYDaXESW4gt0NmtNEcJgAMas8mri2ZwldlTq2OrQ2KSZq75B54AZy8faslZKp/p5kDRurC0N0UKIrzmBiugQcieTK1OzU8k51LeHev7QMFVfxuqtoiF+qmkgzFSXAt9RlW2W2Cnw== 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=xQ6It7ceP4ge2wwkA2QHQTaGh4eZZLUU0skN0ZdcGT0=; b=ApBMHSeW5M0MmmcTdM3vkGNoKeo14Vf/4P5MYmMz55EQMxFQyqYK+Yfv9EWR5dryQ5uUUTkhZKAusvgJZpNAUmpPq8MDgEz0Q6HPN6zFMk93e7MJY63HVbLYFaEAlQhn6BQxReEDnQ9HAKWU589Xma5UQJxmxK7hsLiBkSjKqUo= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by PH0PR10MB5563.namprd10.prod.outlook.com (2603:10b6:510:f2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Mon, 16 Jun 2025 19:34:00 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8835.026; Mon, 16 Jun 2025 19:34:00 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , Jens Axboe , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , David Sterba , David Howells , Marc Dionne , Alexander Viro , Christian Brauner , Jan Kara , Benjamin LaHaise , Miklos Szeredi , Amir Goldstein , Kent Overstreet , "Tigran A . Aivazian" , Kees Cook , Chris Mason , Josef Bacik , Xiubo Li , Ilya Dryomov , Jan Harkes , coda@cs.cmu.edu, Tyler Hicks , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Namjae Jeon , Sungjong Seo , Yuezhang Mo , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , OGAWA Hirofumi , Viacheslav Dubeyko , John Paul Adrian Glaubitz , Yangtao Li , Richard Weinberger , Anton Ivanov , Johannes Berg , Mikulas Patocka , David Woodhouse , Dave Kleikamp , Trond Myklebust , Anna Schumaker , Ryusuke Konishi , Konstantin Komarov , Mark Fasheh , Joel Becker , Joseph Qi , Bob Copeland , Mike Marshall , Martin Brandenburg , Steve French , Paulo Alcantara , Ronnie Sahlberg , Shyam Prasad N , Tom Talpey , Bharath SM , Zhihao Cheng , Hans de Goede , Carlos Maiolino , Damien Le Moal , Naohiro Aota , Johannes Thumshirn , Dan Williams , Matthew Wilcox , Vlastimil Babka , Jann Horn , Pedro Falcato , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, linux-aio@kvack.org, linux-unionfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-mm@kvack.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-um@lists.infradead.org, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, linux-nilfs@vger.kernel.org, ntfs3@lists.linux.dev, ocfs2-devel@lists.linux.dev, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev Subject: [PATCH 06/10] fs/xfs: transition from deprecated .mmap hook to .mmap_prepare Date: Mon, 16 Jun 2025 20:33:25 +0100 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: X-ClientProxiedBy: LO4P265CA0070.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2af::10) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: ceph-devel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|PH0PR10MB5563:EE_ X-MS-Office365-Filtering-Correlation-Id: b2edee95-c9c6-4fb7-a12a-08ddad0cbe44 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: +hguLymOY/EvWdgzmp6Ef1R06tviDnnqqhBOt/nW9dzkkZyOGyUH7+5n4RJ0fIeKkVZkBidiQHCQQDV7jlZW2wqs+hKBowycdmwXmv5JGN+tj4BMQdICZjUhi4SrvAGu/0IO2d98M+ytiTx1JrBTsArDr1KfS0CxTE/ww9KaCCxpM5dT5iA4NLDvi36ejZ/KefL1OhQpeNm2zm3b+V23qTIeGcSrI0ki2aoj2lQI31y0MqvXe8g/NLtHD/SFHzFHzWXndUw2u8Hw0FQ+AzfjEKY0BXRT1NlAvv18AtZEXkrl2id92yD91NfcAP2a+a5//kJciWNB6/LUaPIagi2lJmeBddG5P+e258PidcipkZmQpnInv9KkNBrDG03d7lUoe7XkPtGVdwVf5zcsbktR9JTiugfQXcuy2GYB8WdjjdUJqSyJ0BDtcMDSDf5pQ3VPNBvHy5fYxtgvxQOM/vfqQBtJfNw2m91ul0s5BIVr+0ML6M1QWdbj7hhfkA9yImzU6yxmaOJ6ySVriYyCgHFtvvcwsqq/EOe9abMJVynnBaM0bgHhLQXl2a645gvlXz1MjY9o8DPBheERV63y+8xHA5q6vVSdz5FzblwRH8ax7xq2Y/LaCYrNzrhhI8hU6IdIy7VBQTYMDlYRP3nRSJpTRhf+qajbqvo0pOOUZLIK8dXzxR5iy4+AsGogE3lAhrOPXwfyWo5lJ6R/BTOQg4P/oMwuidkvaZkHzmSbn3zxqG6WE7TJrLjTqRqKcpReo8I3l5SaYj+jlEhQVZOFjeu9r4ZJRXRDucmolZIMMXKdxo3iC+js0eoHh7phPS5HTQOJQESu1TeFoosw/0AuiubZ8FNX/krYqF4gxxLPCmoeirtBCHl/3wM4ydIAGUIdmAHQWMpIqiF3+IlVE7QVdXDwaTXpKRceF9aHid2+5U02yYwLt8Xp9NfrT62CWdI6/BPtvCbMx6HvE3T87P1yoWm1rYzd3Fe0YGObxcxz8FM01JWcjMV7sxoIv2V0qdHBDOUSECl6OBdeWoF7PsE5/WcV49ijRyEBhR0Gb0fKhi4xySWRvGNPD4WSTcxHkqAJC2te8afQEApsM8D0DUUD8KMa24m34aBo5n4CBRQaWATJAFEre7ROF/bwHJN0F1od56IJR2LMlZXdgstNCuNBza8TgaMtVrOyV8z2p7lZ5OrX/1cSio1kCymO8Q9pL3D+pUv9KAUW5ccZZgRwquhR6moRXqqzEO37uGlDAmIRSlnokqsc8ZZnKUkAow1CBr4Se4sit1+pveAEPijHlTIPWhSmOyPQ2CNoztInL3EzdwdofKMmTOn0UI2/ZnS6xUL5brWroYdgn930TDGNwEPgNKs+jjfzqAyOwbqtt27TGWmGcwbDdo56780EJbKGPAY9bggA/fkmGIkKrmYJoFKVmDi32v7IFHw9yci1pVDyf5Tv+tQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR10MB8218.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: d6/hj6clz674Miyb/qtgjiAlPXVtQX6PTv1eKcrp6Hye8t5ebzWWDdzjE/CGeWFmAMTZcT1B0FD0nR/52bJ3A0+N9R3bbI5Znnl+DmTDLeTpYFuZgeI9DiSS8rNlR/GQm2WQJW3MJDFRZP42SyuVkda9Vq3TmnZGjg0nGQ0ahzXK48JmgUoslil17CR9TzxMQ2uaCU1mCe6okyV8xxyf4ofG6U3bWfbjrC6dax4YAe3N4P1A8Dhk9ckn0HVILyoqpXUqmmIqUIDNcgGI6WETDQ6KUs51Tqn+6nRul/Ipu+E0q7MvFQ7Piz1xUJRGRHiTTHPJEPoya8T6xc8Tob32c0DWcaOfbrp/4RZ5mCbOQMe4dWYMwze+z30+Asw5fng2fqylSmsz/sFjHErCQZ/hGY7aZzva5jydihkLwauvSt2dQOvKhTVVLoyV2wOOwoSD46PIZDWbJaT25m3beTnce2izbq2dhDsBNyGF1jiCk4XiL0thM58xowepcqVOHGO+07NwTDHmJAh0Wg9taqfs/rjU/s7hkvzLEXNP6y1lcydCfSeVySTgav1SZTtxacKjovP1uld5a9dNdu4AH02VNhXx02I+s/BUSYrkG2/7wmF0hAUy5FxOHtU3r4+TJ434I0K1uqtBYuqmM9J41Y9edRGTR7wU5d80YuCHH47BrHgKwA44XC6dTnjcHFYdmLgdHwEOu5h+ACWRgoMyiQZvubVhnMuzghsmhsLiBDhBffPK1vQuy4MHYMrpilpgZuljH9vCzMWzaJxbQPOzXtj+MgJCCmWrXlUw86xxA2pVQzc1tYbfc0aTTHYkoKzanP5gGDZwspT7xYizOcjBs3O0WRiH3bJRAIUDrYqo5oErcFpDu/fiSvS9o57hvI9Pp3rNJZ26wQ/1psEk3Hly92xWd3SRFtlUvJ3yNHQo39SicDzJRDUJ1G2/dZwTXzUE/2zRGpkVAtsR5bDSo1SKJG2F9Z0ydSxMZIk4spu4+bQ6wEWmZ1ai/hbnJiXWczvXXD0olt6YBhEDU3QGsyY+2OwlE9QxaNoy4+GVFb2DyjajJcWFjyp68FWN9fKHWqXIrZPXxsrz1Cfa3zn+xrBVF+l1UHPYtjTK+BODUOuV4hcxskhRvY7NdJPlacAYEmBLNK8+juZM2t61v6ifUINeiXKnygk/U36sZn67vOdJTol1oS3XTOP1/7ZTFmuYlBcsqs4BJ8ZxoLkXiea7oq11TbE8NMuKTRNFpb2gb3/gQbUu6UZFKnhKsA1kK2Hu5gIr2zOAMM4/bWBXz0WAIC7g2h1QfDz4NfVObhvXuF3hAj/SiPWexGxLm+qje7LVFJw9srFoA6uK5ZKdR0dije8SuqNoK3jq/HU+cZsYJz8XttPgEwW3wuMrDlJjcPn7ScSeJtrc8c0gSe5gpGQSy3LoXVBC7K3Ts1zfXTwoF/bHRSR05qie0f7NZMq426ajB0QOnLie+iXVmfEy2V6HtkAUbac9/Eb0L1MqiuZCs5pK5yIt4mw9mIvwkWbu+l+7MxpGSI6Y4gP5HP0/PD3J5RUg2Kk2X1Yfyti3rbeoINL6QwV/GnmwWtt3SFM4hLCynw8kH9NZeqAqqHRFwGXiEgoGSLtkYw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ybPTQK679yBBkUjoVIxbPZ++XcQIekyBwcBZqvSteAtyjz0dCyYsDQc4mxzXYoTmFru90ncppXGq5tMk9etjQRadWccOtIDuV4Yu7uRY18IgzjSoVVsM4HKTGu3+in2Qy4IHLZ8JZT/kR9fru22f+PnnwY5OTS1xuuhaF1JyVWsEts9QALxYfEHj21wEME9v4GzWXIi200F7Byr6804ZWBNK0r/XytuBYr5CoyH8yrcuwwuB8H4blTSnGlg2YfbjT/mt0ichK+tyacpaYCdkdcpf/98QqykhEMbo7clKywBLoTMcMqia82NamvW+je7v4Zp+0VxZlr7+zCMGV4NkVgi4WUikMjzWV8GR4c4s7S0dzMkBDgRjShm/uODWvUeqc1GIgRNAWt9n17fYMcEDjIype2aIp5vslM3MjMaSWYh21p8cKvGokHj/M0XuJbkU9T8USh7fnETlSdKLqMik22K1A4D4JAc0nRLoD/HvTFT5m7HpUgb1WCcZ05O8PAaM4YThAM5Unu7kdqwqaOnBAPvcwu4aUfybRmdRYNzuVqopbnTcU86UIXf4YFf9PrdvH8GgcE/itP7dFKrkOLjDDw8DhJNNdkfmSLIKwhF9n8o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2edee95-c9c6-4fb7-a12a-08ddad0cbe44 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 19:34:00.0846 (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: 1ck7ZvcvJ3VZmBI0c3TIQXbs58RUEZeYrpW6SPMLYdEzu+ceW5HOiT6aksoRLZ9TIKW+1MdoD96tt1JMqJDgJTZifT0/xbKBNhDqNyS6pqc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5563 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_09,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160134 X-Proofpoint-GUID: UpKOwF7mhYOMHxwVhpYG41iXT0M2bgck X-Proofpoint-ORIG-GUID: UpKOwF7mhYOMHxwVhpYG41iXT0M2bgck X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEzNCBTYWx0ZWRfXz1O2Ok/T8jwZ T7zYD3c4EUTrtZtEAKK8PHCeZJrMnnUOfpn716XOGKyV+BnAeGNU58uQuz1fhggnchGkL3gXbyW Kii5IsXJ1uD9koceBBddFG0P4Y8cgbR9qJMefZeug9pxqyXs2C9xEcvmlOBEe8JdaU4lhL9S1fi ZrzoyvEI9jBobFhC9mJvAVcFpjZ+MAkFnKBA6N8mlWlz5yRXhlk73cjLYSC3Uq+ZotBWp8SjfPT UXm7XPIugoPBNIkXKVqY6PjBnFnAm6j7XB04DbyWQ6khuC0aOIP/07ePCVMd/FEps4GAUHQeJrP LVmA2QAbMKwdTR8Bns4iUjnhTqgxIOV/SxBJU3F47rx8rzADaUPQ5by5qmxTK2r2ybOGi/4gfTa xUZmOllhQZVmvLCbFzgih56n3vQxt4ZGHtFU85NNfcoogzgctlp8wDlS198c2Z4C2SknQGqA X-Authority-Analysis: v=2.4 cv=XZGJzJ55 c=1 sm=1 tr=0 ts=685071ae b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=wP1-y75VcYHVbZsH9DcA:9 cc=ntf awl=host:13207 Since commit c84bf6dd2b83 ("mm: introduce new .mmap_prepare() file callback"), the f_op->mmap() hook has been deprecated in favour of f_op->mmap_prepare(). This callback is invoked in the mmap() logic far earlier, so error handling can be performed more safely without complicated and bug-prone state unwinding required should an error arise. This hook also avoids passing a pointer to a not-yet-correctly-established VMA avoiding any issues with referencing this data structure. It rather provides a pointer to the new struct vm_area_desc descriptor type which contains all required state and allows easy setting of required parameters without any consideration needing to be paid to locking or reference counts. Note that nested filesystems like overlayfs are compatible with an .mmap_prepare() callback since commit bb666b7c2707 ("mm: add mmap_prepare() compatibility layer for nested file systems"). Signed-off-by: Lorenzo Stoakes --- fs/xfs/xfs_file.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index ab97ce1f9087..f7b76647d675 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -1913,10 +1913,10 @@ static const struct vm_operations_struct xfs_file_vm_ops = { }; STATIC int -xfs_file_mmap( - struct file *file, - struct vm_area_struct *vma) +xfs_file_mmap_prepare( + struct vm_area_desc *desc) { + struct file *file = desc->file; struct inode *inode = file_inode(file); struct xfs_buftarg *target = xfs_inode_buftarg(XFS_I(inode)); @@ -1924,14 +1924,14 @@ xfs_file_mmap( * We don't support synchronous mappings for non-DAX files and * for DAX files if underneath dax_device is not synchronous. */ - if (!daxdev_mapping_supported(vma->vm_flags, vma->vm_file, + if (!daxdev_mapping_supported(desc->vm_flags, file, target->bt_daxdev)) return -EOPNOTSUPP; file_accessed(file); - vma->vm_ops = &xfs_file_vm_ops; + desc->vm_ops = &xfs_file_vm_ops; if (IS_DAX(inode)) - vm_flags_set(vma, VM_HUGEPAGE); + desc->vm_flags |= VM_HUGEPAGE; return 0; } @@ -1946,7 +1946,7 @@ const struct file_operations xfs_file_operations = { #ifdef CONFIG_COMPAT .compat_ioctl = xfs_file_compat_ioctl, #endif - .mmap = xfs_file_mmap, + .mmap_prepare = xfs_file_mmap_prepare, .open = xfs_file_open, .release = xfs_file_release, .fsync = xfs_file_fsync, From patchwork Mon Jun 16 19:33:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 896924 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BA50291C1D; Mon, 16 Jun 2025 19:35:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102527; cv=fail; b=B6T2hTMvwfqaSPse01DZusxQxDmhodpBJek5p4qkd+YxtD6FlxWker8D7JZClag5N/ISIvBBrK3XDZtJKfbolWmy/T0Z92Fa3Tge1O2UN06MfN3ZoFDb39BWoHmi/aB5PM83f4cqwHH6WKN1RP25msq/FGq9aOG6bMAo/vwabC0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102527; c=relaxed/simple; bh=4cMfgs7TW1r9owrFm0Q5axS/U4WGUYBY5z07osHUwKQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=FGlC2kMI3gQqQ0py4C8L2l+4TFs4cwcjMG4kduWojyhFn1ZgFhzMEMV/vYz/lsWU9epE86524l+EQ1IE0fgoS+BdG07kOt0Y6fLntNDeI0yK6qcRNgszbE4gJcgxZ1zx22upA3NNWrknEfXiO55e+s2iIokEOU9V+Vwj7d3LUzA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Q7W6D0iE; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=LL8jZ78Z; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Q7W6D0iE"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="LL8jZ78Z" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GHuUbY027735; Mon, 16 Jun 2025 19:34:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=0vX5EMBn7enV6XucRoT9/b+hV0OZHmbjwDCB6G6NYFA=; b= Q7W6D0iEYBtnRmr0vI+5J/nAHsLT00xA+T6U5uuzh5sdpBlJLtAvCx70swx/nUjw SGg5tRpQT2Wu33ZDCN4o0B21hIHrSWLM43QXzdH6wj4heaH5ZBCiSwopsVPEXEwq VbhDAUaxiRi8WzD5qw3SFext6f6eY2jiJ+nqOORokADAMyO8E45nLqhYu0wDyqGN Ir2xJ/KzFvKjCwarhP6obFiG43IAqLMdxMcVXGt6U/pZn3BYg3ZEbH3s5lWNep3f pgbhZUDjPR5CE+m75W3pY45JTWvljMTdOiQyjwaiKmxKLIMjUgridgbLyZS8aDCF ShqE25nMDqGkWjspcStU/w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4791mxkphp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:09 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55GJ6DKO025950; Mon, 16 Jun 2025 19:34:08 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012066.outbound.protection.outlook.com [40.107.200.66]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhekuqt-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Tkjl6Jcjoni26amNMWITLUcom1sYOFXZUNKwxqVSkrov1Y/JIYCnYvLfiVKjSIzDstmG6ki2m5/VtFeIsavcvVoJsJYZk1JgqQn4qXQ0ohh68FHLK3cAXCUEQMlMT3DbM+56rEfJv3dt3vaPYGmnA3GcXwR8fTd/Vqt44tyyRmM0kewsWuGGc7ytxBscWvSQjtSpH40duGaLBvmdESGy8PuaHMdOG4+p5IeyyoKvcGk+zofjMd0N5u9JsmBpt8rxFkeuAuMoIJIQ1XA6v2gg1saq8vZ3H2aczSR7A8uGe8ixzelXvKqpYchWOQg7DoEHMAR5u/WFzPTrk9hbTAp4Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0vX5EMBn7enV6XucRoT9/b+hV0OZHmbjwDCB6G6NYFA=; b=nC75QAr7pO+vtIAowDNelQkkFiYoddGiXtrx/ywffSCGOwMn1kVq5jLyd8uOICunEqfF4L9DKK3kQF7nZ59HMe7nFt93Vsxv0dMTQc5Uu7mW9NogV+d5ktx44qnoF1zu8gKTRaAUmkR4kF/OvJmR3e99lO4eOpXsZ5NlPV0tSlJpH2BdRlGmera/9M2bk7w800X5My9GRSMLeIPELnN2MsZBEiSAc1GvTq5fd24XzI6s9p5mjpjQQm+Sjqi2iiNTM+oBLhUfXmJsBqV/cpLCflgIJ0jsG1nRmBiI3EuSNSYGQQ9+TNdpE8GQp4jGePe8K6pedehV3+0YyOdeCXHYoQ== 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=0vX5EMBn7enV6XucRoT9/b+hV0OZHmbjwDCB6G6NYFA=; b=LL8jZ78ZP/7SStz4/ic2ZLMMSCvc8li4VPaSI8fwEEf96QrE/FZz0juUYAiMt9YdbJ6K7qiOfwYGNqnupp/95fR7AxT16Egnakua/u8qc8EtmRQsq3/QvLBTT7Ne3WsibzV55kZWxnBndqNGZ5V8G22xsjXACSw3cn4n5RkEvok= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by PH0PR10MB5563.namprd10.prod.outlook.com (2603:10b6:510:f2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Mon, 16 Jun 2025 19:34:02 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8835.026; Mon, 16 Jun 2025 19:34:02 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , Jens Axboe , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , David Sterba , David Howells , Marc Dionne , Alexander Viro , Christian Brauner , Jan Kara , Benjamin LaHaise , Miklos Szeredi , Amir Goldstein , Kent Overstreet , "Tigran A . Aivazian" , Kees Cook , Chris Mason , Josef Bacik , Xiubo Li , Ilya Dryomov , Jan Harkes , coda@cs.cmu.edu, Tyler Hicks , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Namjae Jeon , Sungjong Seo , Yuezhang Mo , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , OGAWA Hirofumi , Viacheslav Dubeyko , John Paul Adrian Glaubitz , Yangtao Li , Richard Weinberger , Anton Ivanov , Johannes Berg , Mikulas Patocka , David Woodhouse , Dave Kleikamp , Trond Myklebust , Anna Schumaker , Ryusuke Konishi , Konstantin Komarov , Mark Fasheh , Joel Becker , Joseph Qi , Bob Copeland , Mike Marshall , Martin Brandenburg , Steve French , Paulo Alcantara , Ronnie Sahlberg , Shyam Prasad N , Tom Talpey , Bharath SM , Zhihao Cheng , Hans de Goede , Carlos Maiolino , Damien Le Moal , Naohiro Aota , Johannes Thumshirn , Dan Williams , Matthew Wilcox , Vlastimil Babka , Jann Horn , Pedro Falcato , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, linux-aio@kvack.org, linux-unionfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-mm@kvack.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-um@lists.infradead.org, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, linux-nilfs@vger.kernel.org, ntfs3@lists.linux.dev, ocfs2-devel@lists.linux.dev, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev Subject: [PATCH 07/10] mm/filemap: introduce generic_file_*_mmap_prepare() helpers Date: Mon, 16 Jun 2025 20:33:26 +0100 Message-ID: <30622c1f0b98c66840bc8c02668bda276a810b70.1750099179.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: X-ClientProxiedBy: LO4P265CA0283.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:38f::14) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: ceph-devel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|PH0PR10MB5563:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d0f6658-586f-4589-32d1-08ddad0cbfb0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: 3KEpAR3GbKfZj7/kXL5O98WrpjT4ur77uoAhSeIzKs51YU8aF/OVGa3KLhxtlDBkJc4ZaVZSFxbLgAkEoI/XhT4M11FLk7ppWSG4vXuSWltA8X5gHJ/GfINFxbtqpFh8GaBoE8C8d3ou+H+po/hGfKYLZpryaaUVJfdPMvzmJUkQkKimPptPpOBirnr4jTaYk6V1eA18GSRkm8oIkSVpnSnytw0/Gihf1Gyv7HuVCazQV0Wr0pgD3d5VVUxPW8kZHLPDG5mJ7kJ4ABvDV0fyDDt09Ib0liwIvXWZQD2S124H+dkcOaxLcO1NRO03XTkxxeuKAxJ5pS9E1lMxM18ZRUlh0sO1b8UQ/XT6TGTreTkxk5Ue3RNn+S+aM0QAyyDrFg9eUrRJVELJteatBqCk0EBrAveWy8zR+3pZCGYzqvrkRFapBnJQQf/32EMfk2h3VG4rKN9/YuwPG9nqW2RQSkR7xVlNfMNtr9SU1SOaD+P8wFv4PA2EPmC8VNjnrKAfpUSzn3HNS9HFBPVfOY8XTpPaTf9wYx6Jy2lMO2/dOxmgHHJAqKtO3pNjjYhz7EAbVdGTbqYRd7LyBQUzjE0n8ViVk4sCCjhKjmmGoFqhbAUkYL3QROoc+PQMH55M9Srh/IcQsiw/fe6eqSjwF2bd+Inoz1q1i9G1Elh7nlZxyow9tgLrxdBE5IvYTdTwdGv5xWO/j7FIhZriA2KsmpFC9H369AbQLBCULW207sxtdbWGRGXdw9BYmBLguxlxc0Y6SS5920yxcB8jposobeGYt8ZC75yl89Nl6rZ0ZzqG/nJqzovF9I/cgvGpQmtpj20ZpD1njFrqJ6c3ni5lOa4KeNO9+/DhzLokIZIasw/y1/J3FHHiQfVfaMNy4AZXELJ+qcSeiWX13lFthqu90SvD9DqAUOFiJEacM7gBuNSy1DmSL0VNRNVaeL3ARdt6iareXRANKKDU+bHO+z3QD/LW5AudoJfA5ayM4H3Upik+3tkPFG5G4Wh2IhHakFx/Hr9Qdp81b+1lMshkibohgTa6RxmtREy1cbfuBB7FNMlAMHYKp9tidGacCR0bZ6O7649MJA4bXaGYszVCIyGGAsA5vx6srRPr+O81WT1ZpSA29FZ99TpRILt0dSUBJR3ze/eGa/AViF85B6OdTyfvCuGYLEAWisB87hJYxQzl+VtNPTc7ahQ0jX4eVE+FdHJ+Eut8CWJM3y+m+pSuSnHxYjwDCq4m4D/QKFNIaCAjXWOJ4J933vCET29UecbnqhF4jTPkg/VWrePu4Ws2RnWZQwJdP9z/dlZE2B7wzOVMhd8d565OKNfPdl2j9J3/Jrr+DbQ+qdrGQoz2lmUf+CRfS/Ph991O+if5/4Nx7TEYofJXNroTZxNimU/pXgjIFVD8TvByCiLw2BevGNosyxGwRo2OZQm/8LLScirJwzEQO7ep3/M= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR10MB8218.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IjnTfYbBQBO0yKtZihfVsXToKJY8wG3/YFPT8YpI4nSISwUllpFq3UuwDjVjPDdFbPbfaPkZtaJc3iwzXaRg/3+zrej6VdxjhtHkOzLnMFYr0kPnbtL154aGjuYJ9WezXrhKZNUcBx298c/4ohzH0GwAtkOP2+j0b1unE/r+15vB98wQLn365JRzxCnUGL1wXGTlZ0t82I/CbRkqcDSxBoJU4aEj275q/etF08gjA1O0JYP5dx9nvfHT60ZFvRQPllMQ08sxUOZxULCHFYqVUL+95qeG0DYxY50KC2OchtoKy3WAmkxfAtZC+LR2RaCWN7/3jjN+8mRMEu2XE9B3CD6NRnaEm/83gsBzsFFCRGqWmiTSMZ7p3GAyZ1sMfnCtf5ayrenoDXzrb+82ZwUN0BS11l0wANlZkZ/U6Yrtgyx9PYwjU+tmNQFrCAvBL241nCj9MxoMPlogx0kphg4bgJef39U9OqBlDwSk0H1aAzC6Ihop9+0S6GhlA0510mbWcXxEv+XPMSFoOY94/mCRGDn6bNSqUPwXRPVpeQtWYAF0y+8klkUTgL9hOHzSseYsAv4kvTtSvsSEd5WgyLd5k/ZUMaaFi3hQQVMmvsZ04zSKnZ7zvRJtpAVtpYKYs9QW1y7yfhTl8z+Dhpn7AHc1925O/xlyiPZt4C/G0c9VIB12ChAP/pKYKWS+3+AGuPqZqepAds62TS3HGWmkgBTJHHr7DdNPTayR1weK+h+ssOVemOVkAReOoietP9N8/PJaPMtvP5TsfBceDdXliAdEkA6g/BuLtdLRLQQliNShR5C4/QP8aefVDx1nptihn/0mbNJQ2DvWU8QU6MGrUCbd3CIYspY29d7R71e8DnmjOY1aKSrx0QC4RN4WybUG8T5zEHn6k+TM8ffy0mqtYz/0pKwDbOpgRJ0VAMZSDr/XaDrFvStjmXucSfkSziSfqsch/MR8lWQYGSPxR6FXFtz3srli0+WPcW3dLUn+/X/7Yw3oH2ldGT8wLMPBivI7TEgzOgi1tkNGsS4yonoC0R5frYFR2drAmjYlVfdAYJ6f8AjV2gMOcUuejxZP1hL7fhImpZfpIEkzs7NhaEqRu7jGCQM6QZhIiGRuzTYeqxG39ShPM1fpcv/ulQgEZrv3Rscwl033hPgo5ztGEE1EEqXmh5r5Tn0ZXxtrC8HtVGWowxA+oK6W2SWOwYXYr6zFXCFLVN6rudGHpFZunLxdf8dia4cnpV6QE1j4p5XN6e3jfT7ir4ABoYp9o2BiReCHcGyhniYhWYBQPPkq+qC0d05a7zmWsJ9RTVDIRPOGVNYEUBPoomXJpETJOYZxCErHq538ARwJg8eGOTqbn+fFYE1J9ykfZG3t+lEdaiUTleS2AEzzVfv74l/hIWmG62FmvLh+N6eziDwAix2LWjOwnlB4tbcS+/Gk1EanCwcmvhOpgOsfhWOpIssLXz98ntei8lEtM4sOn6nx+VD/omASASP4stPIj323roi5gt5ku6gZQTtL3hr68hSS8C+lTNJAafxmT72BcpnvQeCtZrjOvh1+v3vLJkdcsxp211UztLfhJK0nkZVVrSBbfQpKS0gfHdOgG0vwbtvuIu+aTGqMnj9Z4w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: M3MYnceVArAk2y8hFq7m4j1Bcz9jhJjaCZ0xW2kpkPvPg2U9jCO5I0lnPGfS6hNM0HMAREcI8zg84T+h56ays3Y1GC8ixH/lXJwbemfetejE+Q0K6xDwKYm6283IPgbvP82e7vB2LsUjGWKRH4AJlpsieYe/ssoBHbQHsDwR39N1d2mzWkONVVqDJcIXCdQ7nyqzMjAWhfg6QwWzcHU6XLSuh5/rpBIdyM7jzfYaPYlI2NanwcdvoUKsQxbz/MlaE4hTNcdv2H1zToatIt7boe1XYvMe689XScay+r3NN+kBizhWYVA0+Nst921DN9/ZsNenUFVSjbxVp8RFmBStB9nMDXh/mxM7SYp6OnqBRArNt4UKPi7T5PJqlzQhv2TkToRA5cRgAZhK1cM05U+FkHfHXDtSr/Rdzb/73EJkinrBTyHIAv0RnuT9RpYCjhMjbWoGv2arwewd76Jr/Qd0QAPeqa1u9tg33x5d/DHAv8ze5OV+euXr/0YxkcyouppzZivglpNz0NLdxKYlQbmZ+OjJW7bEKGBywyBSoQNe9d9di1zGQvAZ/aEIOlzOYxsGvv7lF5PqtBJADF6YdjjVQUu/Xau2ph4w0/5FGdyLlQA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d0f6658-586f-4589-32d1-08ddad0cbfb0 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 19:34:02.7565 (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: gLAnw+Sfv8pbV0OlnkC4UoMyK8qcLll9APOK9/qjGi6t09w7eyZplX42jCLUjBYqY8d+aF9OG9zMpy0iHKYC1gzyXCUByTH/+uEJU/j9P7I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5563 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_09,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160134 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEzNCBTYWx0ZWRfXxot//taULB1v ClYTuZF60nrFtVdCi2koj7VUZ+ZZxABL0FllwLuODm8RCAhFpzluNO/kCsqMYuVnFUSjIfFk4do GJFrA/zFo1Y9V+bR6vQceTbgFpxZr29kVTdg1KvkViz63P/E9fPdXci3uwZMf/KYlz4NMi3kAFU nfypuU7ZbkLgB5vE5OgeZ+0nC69AQ9aA5G5/bZ09ZL2Gnfu3lFuKFLUl3lJGT32axPKcr5qYk4V FkW6Pq7lDpqZKd3bJHY5SgOGwihyOKP1SsdBoEdptdAMYNx6/J3OE3O4Z9OVehJudJyqbkJs1cN d1xNTxDuudt7mfCXviKTw53EpKz38vHo1Gu9WsPlaqZI5zfAuYRLMKqqFjN1E00y68mHSFXpX2i x8nrjqCgsd31RR7WRCX9GrnDho5G2kpdKGjTVh0mll7SKWz6VQr1ZgK9CKDSbx82eufhdaZc X-Authority-Analysis: v=2.4 cv=HvR2G1TS c=1 sm=1 tr=0 ts=685071b1 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=hDMBvOXnDYdnuEP8xnoA:9 cc=ntf awl=host:13207 X-Proofpoint-GUID: LVImPUdswCVkrubLAU7BlRPxBhcsByBn X-Proofpoint-ORIG-GUID: LVImPUdswCVkrubLAU7BlRPxBhcsByBn Since commit c84bf6dd2b83 ("mm: introduce new .mmap_prepare() file callback"), the f_op->mmap() hook has been deprecated in favour of f_op->mmap_prepare(). The generic mmap handlers are very simple, so we can very easily convert these in advance of converting file systems which use them. This patch does so. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jan Kara --- include/linux/fs.h | 6 ++++-- mm/filemap.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 7120f80255b3..65cffc445fcc 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3395,8 +3395,10 @@ extern void inode_add_lru(struct inode *inode); extern int sb_set_blocksize(struct super_block *, int); extern int sb_min_blocksize(struct super_block *, int); -extern int generic_file_mmap(struct file *, struct vm_area_struct *); -extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); +int generic_file_mmap(struct file *, struct vm_area_struct *); +int generic_file_mmap_prepare(struct vm_area_desc *desc); +int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); +int generic_file_readonly_mmap_prepare(struct vm_area_desc *desc); extern ssize_t generic_write_checks(struct kiocb *, struct iov_iter *); int generic_write_checks_count(struct kiocb *iocb, loff_t *count); extern int generic_write_check_limits(struct file *file, loff_t pos, diff --git a/mm/filemap.c b/mm/filemap.c index 93fbc2ef232a..e75608cbf420 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3847,6 +3847,18 @@ int generic_file_mmap(struct file *file, struct vm_area_struct *vma) return 0; } +int generic_file_mmap_prepare(struct vm_area_desc *desc) +{ + struct file *file = desc->file; + struct address_space *mapping = file->f_mapping; + + if (!mapping->a_ops->read_folio) + return -ENOEXEC; + file_accessed(file); + desc->vm_ops = &generic_file_vm_ops; + return 0; +} + /* * This is for filesystems which do not implement ->writepage. */ @@ -3856,6 +3868,13 @@ int generic_file_readonly_mmap(struct file *file, struct vm_area_struct *vma) return -EINVAL; return generic_file_mmap(file, vma); } + +int generic_file_readonly_mmap_prepare(struct vm_area_desc *desc) +{ + if (is_shared_maywrite(desc->vm_flags)) + return -EINVAL; + return generic_file_mmap_prepare(desc); +} #else vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf) { @@ -3865,15 +3884,25 @@ int generic_file_mmap(struct file *file, struct vm_area_struct *vma) { return -ENOSYS; } +int generic_file_mmap_prepare(struct vm_area_desc *desc) +{ + return -ENOSYS; +} int generic_file_readonly_mmap(struct file *file, struct vm_area_struct *vma) { return -ENOSYS; } +int generic_file_readonly_mmap_prepare(struct vm_area_desc *desc) +{ + return -ENOSYS; +} #endif /* CONFIG_MMU */ EXPORT_SYMBOL(filemap_page_mkwrite); EXPORT_SYMBOL(generic_file_mmap); +EXPORT_SYMBOL(generic_file_mmap_prepare); EXPORT_SYMBOL(generic_file_readonly_mmap); +EXPORT_SYMBOL(generic_file_readonly_mmap_prepare); static struct folio *do_read_cache_folio(struct address_space *mapping, pgoff_t index, filler_t filler, struct file *file, gfp_t gfp) From patchwork Mon Jun 16 19:33:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 896923 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9A38289E38; Mon, 16 Jun 2025 19:36:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102599; cv=fail; b=BWng/+29GZ17NJtMPn+4pRfebQyrEH/+X/+sBk+7wb7E3qQ9SeSbIo7vZ/wBZfiEoVfqJAVjjtRx6QGQsHh7rXtqy2DMObQk9r4VaILmbz3RCDKpdju9wgQiJpWL4tuwLKIWlLV0wFpc8/jkUGx4SBZknDo8/XOUMDhkPqYufls= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750102599; c=relaxed/simple; bh=MZKGWm0sG3FU3+vlfi/dP7wmkBjl7uVOMJ4L1ruHOUA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MaQB8PMpS6/6HbcVpH/Qn+WaM7x9j2UpE4ZsUAzBTIE+Cl8aO9WvA0vwybkRlmZI47g+2ZZsOeEnJgI1yYeWRwWZlkBKsR2EvtnrurNBZJeyzpcFTobAdt646J7GIzTPzo2MyhCU/ky7Hv/O6vSo6pwdOurxEUY3VcqDwE+JaLk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=MSmDAAoV; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=maCVS8h9; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="MSmDAAoV"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="maCVS8h9" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GHuXdE006694; Mon, 16 Jun 2025 19:34:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=k+2aiYLoMA/bjfBM9WinJX4HBnMZDqACvqdy/S9xPiw=; b= MSmDAAoV+UCvPJaJwac/aIhB+3jBaoHjZo99NjuPtt3CKax4sTCGFm51EtheIOxs I44nXTbo+dstCWkTSB0eh63HBerhnuPt6ul+Z9eLDnfaHctdSwsu3vCQ7g5zqhsp wF4duWbIYJPvlHcnVAPa9Y7EAdCHgoi+YkBLPapDs7mMdIPfe6YMg2t6M7mf8S9K aMGJSpgJ2ESEhDtZ8qmbrNKrT968JoCnbby3qaoXH1azHlRvQnhQX/Pahf0gooh1 vzIXSlBhb/6DisJI+xxVabwOTAbw35FGOyfVQZFWC2Z4Ydt9Bmnv0FnXYGdx1/Se ckCwFKBS0RbHfpO/sgjnBg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47900euq9b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:17 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55GJ6DKX025950; Mon, 16 Jun 2025 19:34:15 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012066.outbound.protection.outlook.com [40.107.200.66]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yhekuqt-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 19:34:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y9OgYxA09RWwyalceN7hQHLgoyXhTXagI9ql+JOWPqp7ehkzphs4Co69Wa2OYN/kqjrs8ScFrWEjBwm3LDHRava5oGIMCs4r/SNh5W49M/M0C7gEWGkWuIp+/XcbTTDdJtydFiq8GNwhpQEwe/Kmn9+kk6FNhc8qtRRzdk4JLHzj03Vr/yHCX4VjjV84xgKGeNAfrBsdtCRkehvhjRNgLW2evbGHFIA0nAzn1pLEjx288wVClAzBPOCidjDieNMldPL5EQtJhC08ryb3OrzOPAbMlqSnnDaMTsvTOS5r5ABhYHhPP2Jfix/P58U0AU2t/zb0d2bbfxhnHyHQ6TXIZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=k+2aiYLoMA/bjfBM9WinJX4HBnMZDqACvqdy/S9xPiw=; b=Q/7D0BjGY2CGQ/qLo7+3txEF0cc6VBQFf/IK+ilJqhFGA/2ROFbALj0xWwIYQtfeZ/HIBEb4j+cGN4BsyMkAPN6ONtTYZuKLJB7qpPlMilTm5DuDrzfENy9e1L26QA2vHO8cNMQsmbAGdB/Tnh7mJgcdUxlN9ttzLUz34Br22jgQM45tER7380kg+QiqwFG8aowREWLuplkQV38ABbmyFdtPFnCUe5zA0hPUtNWmrLX86DJo09YxnLwm6fH9O3Poyem4id8SNysP7XDvQiO6e6OlNl2P1vXMfQN9ANaklVpJD47XwELUeQ4Clit+uuqgKhrDSTiWgG/+LI3Fec5OMw== 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=k+2aiYLoMA/bjfBM9WinJX4HBnMZDqACvqdy/S9xPiw=; b=maCVS8h9iVS4skJnOgKq0sR70kfzyGAvHti21mNHliHFpaNeJlS4Axb7vfM+WA7w3WJCV9jtyjXGJK6h6awka6RsgvpH4a9XV92yN9pfxOB5C6MfH14mxe/p0bb5pODZ0j1i87mEW4lVteByHyw8IQ7d2cRirJiP/96Vd7IAq9A= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by PH0PR10MB5563.namprd10.prod.outlook.com (2603:10b6:510:f2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Mon, 16 Jun 2025 19:34:11 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8835.026; Mon, 16 Jun 2025 19:34:11 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , Jens Axboe , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , David Sterba , David Howells , Marc Dionne , Alexander Viro , Christian Brauner , Jan Kara , Benjamin LaHaise , Miklos Szeredi , Amir Goldstein , Kent Overstreet , "Tigran A . Aivazian" , Kees Cook , Chris Mason , Josef Bacik , Xiubo Li , Ilya Dryomov , Jan Harkes , coda@cs.cmu.edu, Tyler Hicks , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Namjae Jeon , Sungjong Seo , Yuezhang Mo , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , OGAWA Hirofumi , Viacheslav Dubeyko , John Paul Adrian Glaubitz , Yangtao Li , Richard Weinberger , Anton Ivanov , Johannes Berg , Mikulas Patocka , David Woodhouse , Dave Kleikamp , Trond Myklebust , Anna Schumaker , Ryusuke Konishi , Konstantin Komarov , Mark Fasheh , Joel Becker , Joseph Qi , Bob Copeland , Mike Marshall , Martin Brandenburg , Steve French , Paulo Alcantara , Ronnie Sahlberg , Shyam Prasad N , Tom Talpey , Bharath SM , Zhihao Cheng , Hans de Goede , Carlos Maiolino , Damien Le Moal , Naohiro Aota , Johannes Thumshirn , Dan Williams , Matthew Wilcox , Vlastimil Babka , Jann Horn , Pedro Falcato , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, linux-aio@kvack.org, linux-unionfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-mm@kvack.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-um@lists.infradead.org, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, linux-nilfs@vger.kernel.org, ntfs3@lists.linux.dev, ocfs2-devel@lists.linux.dev, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev Subject: [PATCH 10/10] fs: replace mmap hook with .mmap_prepare for simple mappings Date: Mon, 16 Jun 2025 20:33:29 +0100 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: X-ClientProxiedBy: LNXP123CA0009.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:d2::21) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: ceph-devel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|PH0PR10MB5563:EE_ X-MS-Office365-Filtering-Correlation-Id: 09d3187b-9492-498c-5afe-08ddad0cc4a8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: Lq/JXuxcIUddMc3f3nfMDJYQRYuM/5OHW/aBCA2i4C3dIfvaaUsC7IabcxzrIHbGfMnTteZa4Of7/LP6YvzrpfGYHjX7kG7MJ/pSnzZaYmcr8VjHKHasfW+h5Ce03+Io0/WSm7vJqoFnxsYiQgbbgPyR2/wnVVRDu17KyQJ9BrTsEzQd3QiwbLQDUwLTw/Tc5B10tLhgELCcqqZwg1T1IEQMgWybZgbuuWKnl2o07fJbGKj10tLSjUdrEiGXF4hksAryUBgWUjVcyfd6QnkJ93/nGIxJZvpkMmmkjvkGTr+2qV9ARagzMWfRzL/bV3JIETF1T1lMR1YUaqEKLUEMETmV78uMhnPInxCD8JKQub++xBgNSYKFdA8J3ctiqUQWzZuab1YwZ9nD+qvPGqNKIrCdGM9i1CVIcJbyjenPzyPHJxpcfDli4XApFQxVnrTwqXITZ/Rq+Y6CzhujaX4DoCLqPXPp9jJ5k0mC9ZVul7toJxGb73CZsJ+48dwCOVnxvD6WH5QXO8diL6eaPol/cHxSsHBjR2dLn71ulR1P2ycv7kxCb1LDPce/iWojSIl83oFx3hAOld3jndY0q4w3d0R87rVqJVAtdcLeNTsJpsKP/G2f81YhHblT89hcmkATEES3Mc5CfjxLkFwP6LWeN8u4qcNdQ+V3/skzdMRMEjEFbnlJqpk+ecRi37fxUP2obh1pZ/neUpP61HE+lhXbcHg3/1bUkL2Y34R9i55k1ku1KcXAC88XpfCd7CISk6FJZoM6wfE5UhxyKD/RC1OjBlawjMLVrbRLc2Q4czfXRH6YrvbFbvvAlJvDDnIQp78LeeCwBiEZ9XZUJgPCdCuXa34EwfPAIiWMseKZGkNjnIUJmRhfujx3lUh9gltrbxb9jHjNeMT/Tit54oW5t+83LFNCKHNZDfr1klq4azrJF4GlO7X7t8/pV1aIiJMyCxjPWeIg1zx91hozlRaFgmc8jiAaVcTDHv7w6HTBPqrujt/PWC/fec5npy9X+TwyoqLYS1MuuXh0mBorpU3yKALyhpOvk3jbDv/ovPrX8IUlF3TI9hmmBaA6lpQwo1TW0CXD7EhzxaPdQQWvMkCAB1VwFT1cWlllVAEdZLy8SRCgssb8+sCzaJwf8Mx9bm0iJYrSLoJ9HO+orOW04QCMzTI0WbwAtHLRPLP5EEcziga19qUy6UKrfl9Iz36GrDTTRaiUvA3Io2xtTh2cx03olLhc/o+By62JsFQBStJZntJHjtowKrOcVpHIlg9t6ubBZ3LGzhRuZhgwlaMRCGs2RKjv6fHfBBrMjWyakpPTxxzySX/DZO4o1Su4odh8OZJ/yLHC315tUOCtedrYLF0DIPO4d1wkkER2/tY4izKYuxrCwtfOq6OtoKWNkrXneKdIroclRzvxydhveqfU3HGP+kCexj+PAj7EiJt8PzM/YMEeH7I= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR10MB8218.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kbRRHJVmGk1TU+JFgb2z8lLtiTkzeH329qdGqd0Sym9XDXemqcxFekJkYQyxi8C0wfhmmtH2rWZHKiGGDoHAk27dcLMC84nfNGrytgjztJ9eOyAFBFN19THyrCpfyq8m5ubHsYH6wcmOE5cuicIPffSPecdp51uFOjAtq+sM4MKAIII10m9i3Yuvbx9sSMAJaPMQyci/XGNKtqmgFdHKevtvFZgObsI4Sk30NFBwqi66Exo7U038mLzkH6JkDoUh5CrxjHwEW+I3O0UrNbjBLQAdsQwSsKH0K28rLfWiti7+sGt01BbPp4xqn8TnTbR02U6sz8ItVgtiunLxn5+l6plwZ8Hqz/5FonD/2JgK/qGsKCcE9uNjFxfYsacXroiDR9bXjc9jL1OMFqpD1B1E2UqKYiQMT2KS3YKjdQLmzKDeCzWo2TKsUCCvSt/B53+86MVlRQqs7ZA50YoN7zcUH9U0bjLGlD7uIYARcqQsnK1GAAkZol1EEkdXsvWllsMnISugA38bCmnqURzGCs6zxkt5Nu+HCflh+5wYHJu4UFHFKoijaBRl/w03uL6MYTntw7uhWBXupJzQYApAJReGY57XfMAjxR5MTUK1oIA4TEfH7NCQVdIxhkgc0HoohDXZleLVZ+xLTr43tPhuTMZSh7HPzYcxw0ETiLCxmExFyjlPW/xPhvbHqGc1uv26UhL4YRhiTiJSlEjMUubqsfmw5z+rewtHRyu0fgPZSpEhLIUN2AcExkMttyrIc/4kPyf48m8jCb94wE6K0fxPALsXmNBxTNOqYTWG/TP+7XSKFNPAL+Te3ZhVwmNmgecp0hEX1I35hK180FdrlWaWuzyeHrb6hhYy8ychJZ3yh+eWOhLtsvb3y2c9sHYC0jFfdcMcNv8LuR0T78b3KFpBQbB0l0PdQfaQL32tq9opd0r6hvXfNqe5eV/R/BhCTzJ4wxxQn0E0RWtKvCfECgWc/fdPs9Yr1jwWFaoMfLIXF7CSxEY7didWFfNIr8TalxosaG9OOhbun8hfUUBvyp6oQmrtOA0GGRmMKx4RMF9yTR6Km/Qn++VbaTWv7BmUxxFOCpBp0CuDDc+BFizdf8vKg7tqNwX3N+TGafuXmG4H6Vtk/cMebF1p+HzyT5cV26OSmMDkNrLXq/vGY2QmUXmWHCoq/Qhgopl/szST8OLqlJzb1UgymIcc3sSXI9nsf9TYTKRasFTQCaywNNg6jAnuH/cMUd4Sbd0uyvYBqyhx8jMwb5hCSH1Vf8JJzB5nGjuNmUl1qzfK98DsxS/mLNXM+EWvrehwmXysT+SRHutoWV1bZcH4MGMkotZi4NCiDP51tTVmyydb7al/uXVZwddA7TfRYqU+Og2+e8I2YprohH3d2YBs4SA0O+fVVLrCU2u1lvntkuk/dQI9c2GgzX3scO1sv/Rx9RrfUySfCMaHW9+otdoY6jNWwVbCYnSr4SNs0YismOE4x5xaJKvGM3uctHnjQ+v9byf6nLMecCWRm1J0hGZRsCVRSR9U4M55rRC213/qRubSxDqgo28vOiW2QGkPRBqSgYcaMErpV2yQ1o3kkW4YeyrrG8/dW+6fG52IHfJOdJoy0ofQKDKCmUHOhgLfOA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0cKv79Ihlmo3Xy0CRCQfLEnMNyrg85/76pSxNshmR6emerNUE8pn2K10Zj0sGnRBMVSAZ9pq3qyU168HgnXupvlVnVxLTUp1Zltp3OuvBLdBV9h32PiauoHykVf/koBj0MpPm2fmMz5u2a9dhkeX2PEZAEmVl62BHwNjc1pbXLdfRpL1N+JqkLYRNeI5Mh3AjkzMoEuaz1NXi3oq1nmNwwPIyZHAZ+JvRUte2KhwdAUCb3uFhvbmO0JpqrMQD5PsSJUaaxkPJDMGh3m9feBydj7tom5DTOIxHH2+cCJrMzrNLrlEnQ17JUBm1m0kKWv3TitdU2Eh7CWkkmba93knOMEralmpmkUNShjfcwqaTgdqXqdXSpevPxDDeajgSq1sOaZvh7b8+oEVTebuhCpUpQ4PyKEorewq6+LGAGjFdc+ezbMt3naLm/BOMmygq5D7JvFl6gN3YgSJCGxthwJX/TxAC+0z5HoDUE+Kn+0iZvOmbYzuUcNpl5vsRZIeM1UsoMBPzF0ZBkdvt4Mh3A8shb7PC74xIjMA20FTPuFLcUVCt3LzU/CGMAMDB7RdnZAbcwOniWsbfYIJnoaRqjfI9Jfkf783Ojrt1+GVkWauav4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09d3187b-9492-498c-5afe-08ddad0cc4a8 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 19:34:10.9629 (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: 47fkr0TaSvubZuUP/GrUap0CT9AGc2QfdPtolL12EpZCazESC+Vx3CG+udzLsy7vuGHgTSaSL25nf5Z1dWMbM/cyoEW+W9XIosAErD7F/rw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5563 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_09,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506160134 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEzNCBTYWx0ZWRfX3b5VMDvE1NZD NB9W+4mfdO03hH8+gv2jxInx0CFwC9DA08tJc4R7RQwA3V+jT+krBfVn7GrFJnOWGX1N6PfFD/c j2c36KPtIpp/mH07iJTWjMfjxvfGTu3HXnaUCCwUi6ggQHH724N5rcEJujSAXy9E8GeyCRvSfAs UCEni1sKneIaeYg0m+dRXglluG1uw8uK4H52hGZds9e0wvpR6mY1zG47P2MTyn6LGuaNkHJibgW hnaQNRzDILfa/OS/aBUGqyFrbVtasl/Ad3y4KrUCmVhOnLjVlVaMhtgSfzOaDmqBEk7TXQlabDG oxkO+CG7rjUJjtrhnqMOrNP251s89/ZicLFUF3HEMoU9+8ZwqCdGQ6cJYXsCpoH3ZHuJXvLpKpR wotWcURqLsMBWg+ZELzbVJQU4/eEQjZPKXVBCfqO3m4ifCRpvECecVJY4NzUVmAKmP1rRJcY X-Proofpoint-ORIG-GUID: TdGYHk6aJx7_ghJ_K5k9ksQM6Ndj98fx X-Authority-Analysis: v=2.4 cv=X/5SKHTe c=1 sm=1 tr=0 ts=685071b9 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=SMoXfSvzbREBZZtL5eoA:9 cc=ntf awl=host:13207 X-Proofpoint-GUID: TdGYHk6aJx7_ghJ_K5k9ksQM6Ndj98fx Since commit c84bf6dd2b83 ("mm: introduce new .mmap_prepare() file callback"), the f_op->mmap() hook has been deprecated in favour of f_op->mmap_prepare(). This callback is invoked in the mmap() logic far earlier, so error handling can be performed more safely without complicated and bug-prone state unwinding required should an error arise. This hook also avoids passing a pointer to a not-yet-correctly-established VMA avoiding any issues with referencing this data structure. It rather provides a pointer to the new struct vm_area_desc descriptor type which contains all required state and allows easy setting of required parameters without any consideration needing to be paid to locking or reference counts. Note that nested filesystems like overlayfs are compatible with an .mmap_prepare() callback since commit bb666b7c2707 ("mm: add mmap_prepare() compatibility layer for nested file systems"). In this patch we apply this change to file systems with relatively simple mmap() hook logic - exfat, ceph, f2fs, bcachefs, zonefs, btrfs, ocfs2, orangefs, nilfs2, romfs, ramfs and aio. Signed-off-by: Lorenzo Stoakes --- fs/aio.c | 8 ++++---- fs/bcachefs/fs.c | 8 ++++---- fs/btrfs/file.c | 7 ++++--- fs/ceph/addr.c | 5 +++-- fs/ceph/file.c | 2 +- fs/ceph/super.h | 2 +- fs/exfat/file.c | 7 ++++--- fs/f2fs/file.c | 7 ++++--- fs/nilfs2/file.c | 8 ++++---- fs/ocfs2/file.c | 4 ++-- fs/ocfs2/mmap.c | 5 +++-- fs/ocfs2/mmap.h | 2 +- fs/orangefs/file.c | 10 ++++++---- fs/ramfs/file-nommu.c | 12 ++++++------ fs/romfs/mmap-nommu.c | 6 +++--- fs/zonefs/file.c | 10 ++++++---- 16 files changed, 56 insertions(+), 47 deletions(-) diff --git a/fs/aio.c b/fs/aio.c index 793b7b15ec4b..7fc7b6221312 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -392,15 +392,15 @@ static const struct vm_operations_struct aio_ring_vm_ops = { #endif }; -static int aio_ring_mmap(struct file *file, struct vm_area_struct *vma) +static int aio_ring_mmap_prepare(struct vm_area_desc *desc) { - vm_flags_set(vma, VM_DONTEXPAND); - vma->vm_ops = &aio_ring_vm_ops; + desc->vm_flags |= VM_DONTEXPAND; + desc->vm_ops = &aio_ring_vm_ops; return 0; } static const struct file_operations aio_ring_fops = { - .mmap = aio_ring_mmap, + .mmap_prepare = aio_ring_mmap_prepare, }; #if IS_ENABLED(CONFIG_MIGRATION) diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index 3063a8ddc2df..9c2238edc0e3 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -1553,11 +1553,11 @@ static const struct vm_operations_struct bch_vm_ops = { .page_mkwrite = bch2_page_mkwrite, }; -static int bch2_mmap(struct file *file, struct vm_area_struct *vma) +static int bch2_mmap_prepare(struct vm_area_desc *desc) { - file_accessed(file); + file_accessed(desc->file); - vma->vm_ops = &bch_vm_ops; + desc->vm_ops = &bch_vm_ops; return 0; } @@ -1740,7 +1740,7 @@ static const struct file_operations bch_file_operations = { .llseek = bch2_llseek, .read_iter = bch2_read_iter, .write_iter = bch2_write_iter, - .mmap = bch2_mmap, + .mmap_prepare = bch2_mmap_prepare, .get_unmapped_area = thp_get_unmapped_area, .fsync = bch2_fsync, .splice_read = filemap_splice_read, diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 8ce6f45f45e0..06bd30b35b95 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1978,15 +1978,16 @@ static const struct vm_operations_struct btrfs_file_vm_ops = { .page_mkwrite = btrfs_page_mkwrite, }; -static int btrfs_file_mmap(struct file *filp, struct vm_area_struct *vma) +static int btrfs_file_mmap_prepare(struct vm_area_desc *desc) { + struct file *filp = desc->file; struct address_space *mapping = filp->f_mapping; if (!mapping->a_ops->read_folio) return -ENOEXEC; file_accessed(filp); - vma->vm_ops = &btrfs_file_vm_ops; + desc->vm_ops = &btrfs_file_vm_ops; return 0; } @@ -3765,7 +3766,7 @@ const struct file_operations btrfs_file_operations = { .splice_read = filemap_splice_read, .write_iter = btrfs_file_write_iter, .splice_write = iter_file_splice_write, - .mmap = btrfs_file_mmap, + .mmap_prepare = btrfs_file_mmap_prepare, .open = btrfs_file_open, .release = btrfs_release_file, .get_unmapped_area = thp_get_unmapped_area, diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 60a621b00c65..37522137c380 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -2330,13 +2330,14 @@ static const struct vm_operations_struct ceph_vmops = { .page_mkwrite = ceph_page_mkwrite, }; -int ceph_mmap(struct file *file, struct vm_area_struct *vma) +int ceph_mmap_prepare(struct vm_area_desc *desc) { + struct file *file = desc->file; struct address_space *mapping = file->f_mapping; if (!mapping->a_ops->read_folio) return -ENOEXEC; - vma->vm_ops = &ceph_vmops; + desc->vm_ops = &ceph_vmops; return 0; } diff --git a/fs/ceph/file.c b/fs/ceph/file.c index d5c674d2ba8a..41b8ec33e864 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c @@ -3170,7 +3170,7 @@ const struct file_operations ceph_file_fops = { .llseek = ceph_llseek, .read_iter = ceph_read_iter, .write_iter = ceph_write_iter, - .mmap = ceph_mmap, + .mmap_prepare = ceph_mmap_prepare, .fsync = ceph_fsync, .lock = ceph_lock, .setlease = simple_nosetlease, diff --git a/fs/ceph/super.h b/fs/ceph/super.h index bb0db0cc8003..cf176aab0f82 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -1286,7 +1286,7 @@ extern void __ceph_touch_fmode(struct ceph_inode_info *ci, /* addr.c */ extern const struct address_space_operations ceph_aops; extern const struct netfs_request_ops ceph_netfs_ops; -extern int ceph_mmap(struct file *file, struct vm_area_struct *vma); +int ceph_mmap_prepare(struct vm_area_desc *desc); extern int ceph_uninline_data(struct file *file); extern int ceph_pool_perm_check(struct inode *inode, int need); extern void ceph_pool_perm_destroy(struct ceph_mds_client* mdsc); diff --git a/fs/exfat/file.c b/fs/exfat/file.c index 841a5b18e3df..d63213c8a823 100644 --- a/fs/exfat/file.c +++ b/fs/exfat/file.c @@ -683,13 +683,14 @@ static const struct vm_operations_struct exfat_file_vm_ops = { .page_mkwrite = exfat_page_mkwrite, }; -static int exfat_file_mmap(struct file *file, struct vm_area_struct *vma) +static int exfat_file_mmap_prepare(struct vm_area_desc *desc) { + struct file *file = desc->file; if (unlikely(exfat_forced_shutdown(file_inode(file)->i_sb))) return -EIO; file_accessed(file); - vma->vm_ops = &exfat_file_vm_ops; + desc->vm_ops = &exfat_file_vm_ops; return 0; } @@ -710,7 +711,7 @@ const struct file_operations exfat_file_operations = { #ifdef CONFIG_COMPAT .compat_ioctl = exfat_compat_ioctl, #endif - .mmap = exfat_file_mmap, + .mmap_prepare = exfat_file_mmap_prepare, .fsync = exfat_file_fsync, .splice_read = exfat_splice_read, .splice_write = iter_file_splice_write, diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 6bd3de64f2a8..7af2b49b7e8a 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -532,8 +532,9 @@ static loff_t f2fs_llseek(struct file *file, loff_t offset, int whence) return -EINVAL; } -static int f2fs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int f2fs_file_mmap_prepare(struct vm_area_desc *desc) { + struct file *file = desc->file; struct inode *inode = file_inode(file); if (unlikely(f2fs_cp_error(F2FS_I_SB(inode)))) @@ -543,7 +544,7 @@ static int f2fs_file_mmap(struct file *file, struct vm_area_struct *vma) return -EOPNOTSUPP; file_accessed(file); - vma->vm_ops = &f2fs_file_vm_ops; + desc->vm_ops = &f2fs_file_vm_ops; f2fs_down_read(&F2FS_I(inode)->i_sem); set_inode_flag(inode, FI_MMAP_FILE); @@ -5376,7 +5377,7 @@ const struct file_operations f2fs_file_operations = { .iopoll = iocb_bio_iopoll, .open = f2fs_file_open, .release = f2fs_release_file, - .mmap = f2fs_file_mmap, + .mmap_prepare = f2fs_file_mmap_prepare, .flush = f2fs_file_flush, .fsync = f2fs_sync_file, .fallocate = f2fs_fallocate, diff --git a/fs/nilfs2/file.c b/fs/nilfs2/file.c index 0e3fc5ba33c7..1b8d754db44d 100644 --- a/fs/nilfs2/file.c +++ b/fs/nilfs2/file.c @@ -125,10 +125,10 @@ static const struct vm_operations_struct nilfs_file_vm_ops = { .page_mkwrite = nilfs_page_mkwrite, }; -static int nilfs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int nilfs_file_mmap_prepare(struct vm_area_desc *desc) { - file_accessed(file); - vma->vm_ops = &nilfs_file_vm_ops; + file_accessed(desc->file); + desc->vm_ops = &nilfs_file_vm_ops; return 0; } @@ -144,7 +144,7 @@ const struct file_operations nilfs_file_operations = { #ifdef CONFIG_COMPAT .compat_ioctl = nilfs_compat_ioctl, #endif /* CONFIG_COMPAT */ - .mmap = nilfs_file_mmap, + .mmap_prepare = nilfs_file_mmap_prepare, .open = generic_file_open, /* .release = nilfs_release_file, */ .fsync = nilfs_sync_file, diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 2056cf08ac1e..21d797ccccd0 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -2800,7 +2800,7 @@ const struct inode_operations ocfs2_special_file_iops = { */ const struct file_operations ocfs2_fops = { .llseek = ocfs2_file_llseek, - .mmap = ocfs2_mmap, + .mmap_prepare = ocfs2_mmap_prepare, .fsync = ocfs2_sync_file, .release = ocfs2_file_release, .open = ocfs2_file_open, @@ -2850,7 +2850,7 @@ const struct file_operations ocfs2_dops = { */ const struct file_operations ocfs2_fops_no_plocks = { .llseek = ocfs2_file_llseek, - .mmap = ocfs2_mmap, + .mmap_prepare = ocfs2_mmap_prepare, .fsync = ocfs2_sync_file, .release = ocfs2_file_release, .open = ocfs2_file_open, diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c index 6a314e9f2b49..50e2faf64c19 100644 --- a/fs/ocfs2/mmap.c +++ b/fs/ocfs2/mmap.c @@ -159,8 +159,9 @@ static const struct vm_operations_struct ocfs2_file_vm_ops = { .page_mkwrite = ocfs2_page_mkwrite, }; -int ocfs2_mmap(struct file *file, struct vm_area_struct *vma) +int ocfs2_mmap_prepare(struct vm_area_desc *desc) { + struct file *file = desc->file; int ret = 0, lock_level = 0; ret = ocfs2_inode_lock_atime(file_inode(file), @@ -171,7 +172,7 @@ int ocfs2_mmap(struct file *file, struct vm_area_struct *vma) } ocfs2_inode_unlock(file_inode(file), lock_level); out: - vma->vm_ops = &ocfs2_file_vm_ops; + desc->vm_ops = &ocfs2_file_vm_ops; return 0; } diff --git a/fs/ocfs2/mmap.h b/fs/ocfs2/mmap.h index 1051507cc684..d21c30de6b8c 100644 --- a/fs/ocfs2/mmap.h +++ b/fs/ocfs2/mmap.h @@ -2,6 +2,6 @@ #ifndef OCFS2_MMAP_H #define OCFS2_MMAP_H -int ocfs2_mmap(struct file *file, struct vm_area_struct *vma); +int ocfs2_mmap_prepare(struct vm_area_desc *desc); #endif /* OCFS2_MMAP_H */ diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c index 90c49c0de243..919f99b16834 100644 --- a/fs/orangefs/file.c +++ b/fs/orangefs/file.c @@ -398,8 +398,9 @@ static const struct vm_operations_struct orangefs_file_vm_ops = { /* * Memory map a region of a file. */ -static int orangefs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int orangefs_file_mmap_prepare(struct vm_area_desc *desc) { + struct file *file = desc->file; int ret; ret = orangefs_revalidate_mapping(file_inode(file)); @@ -410,10 +411,11 @@ static int orangefs_file_mmap(struct file *file, struct vm_area_struct *vma) "orangefs_file_mmap: called on %pD\n", file); /* set the sequential readahead hint */ - vm_flags_mod(vma, VM_SEQ_READ, VM_RAND_READ); + desc->vm_flags |= VM_SEQ_READ; + desc->vm_flags &= ~VM_RAND_READ; file_accessed(file); - vma->vm_ops = &orangefs_file_vm_ops; + desc->vm_ops = &orangefs_file_vm_ops; return 0; } @@ -574,7 +576,7 @@ const struct file_operations orangefs_file_operations = { .read_iter = orangefs_file_read_iter, .write_iter = orangefs_file_write_iter, .lock = orangefs_lock, - .mmap = orangefs_file_mmap, + .mmap_prepare = orangefs_file_mmap_prepare, .open = generic_file_open, .splice_read = orangefs_file_splice_read, .splice_write = iter_file_splice_write, diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c index 7a6d980e614d..77b8ca2757e0 100644 --- a/fs/ramfs/file-nommu.c +++ b/fs/ramfs/file-nommu.c @@ -28,7 +28,7 @@ static unsigned long ramfs_nommu_get_unmapped_area(struct file *file, unsigned long len, unsigned long pgoff, unsigned long flags); -static int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma); +static int ramfs_nommu_mmap_prepare(struct vm_area_desc *desc); static unsigned ramfs_mmap_capabilities(struct file *file) { @@ -38,7 +38,7 @@ static unsigned ramfs_mmap_capabilities(struct file *file) const struct file_operations ramfs_file_operations = { .mmap_capabilities = ramfs_mmap_capabilities, - .mmap = ramfs_nommu_mmap, + .mmap_prepare = ramfs_nommu_mmap_prepare, .get_unmapped_area = ramfs_nommu_get_unmapped_area, .read_iter = generic_file_read_iter, .write_iter = generic_file_write_iter, @@ -262,12 +262,12 @@ static unsigned long ramfs_nommu_get_unmapped_area(struct file *file, /* * set up a mapping for shared memory segments */ -static int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma) +static int ramfs_nommu_mmap_prepare(struct vm_area_desc *desc) { - if (!is_nommu_shared_mapping(vma->vm_flags)) + if (!is_nommu_shared_mapping(desc->vm_flags)) return -ENOSYS; - file_accessed(file); - vma->vm_ops = &generic_file_vm_ops; + file_accessed(desc->file); + desc->vm_ops = &generic_file_vm_ops; return 0; } diff --git a/fs/romfs/mmap-nommu.c b/fs/romfs/mmap-nommu.c index 4520ca413867..4b77c6dc4418 100644 --- a/fs/romfs/mmap-nommu.c +++ b/fs/romfs/mmap-nommu.c @@ -61,9 +61,9 @@ static unsigned long romfs_get_unmapped_area(struct file *file, * permit a R/O mapping to be made directly through onto an MTD device if * possible */ -static int romfs_mmap(struct file *file, struct vm_area_struct *vma) +static int romfs_mmap_prepare(struct vm_area_desc *desc) { - return is_nommu_shared_mapping(vma->vm_flags) ? 0 : -ENOSYS; + return is_nommu_shared_mapping(desc->vm_flags) ? 0 : -ENOSYS; } static unsigned romfs_mmap_capabilities(struct file *file) @@ -79,7 +79,7 @@ const struct file_operations romfs_ro_fops = { .llseek = generic_file_llseek, .read_iter = generic_file_read_iter, .splice_read = filemap_splice_read, - .mmap = romfs_mmap, + .mmap_prepare = romfs_mmap_prepare, .get_unmapped_area = romfs_get_unmapped_area, .mmap_capabilities = romfs_mmap_capabilities, }; diff --git a/fs/zonefs/file.c b/fs/zonefs/file.c index 42e2c0065bb3..c1848163b378 100644 --- a/fs/zonefs/file.c +++ b/fs/zonefs/file.c @@ -312,8 +312,10 @@ static const struct vm_operations_struct zonefs_file_vm_ops = { .page_mkwrite = zonefs_filemap_page_mkwrite, }; -static int zonefs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int zonefs_file_mmap_prepare(struct vm_area_desc *desc) { + struct file *file = desc->file; + /* * Conventional zones accept random writes, so their files can support * shared writable mappings. For sequential zone files, only read @@ -321,11 +323,11 @@ static int zonefs_file_mmap(struct file *file, struct vm_area_struct *vma) * ordering between msync() and page cache writeback. */ if (zonefs_inode_is_seq(file_inode(file)) && - (vma->vm_flags & VM_SHARED) && (vma->vm_flags & VM_MAYWRITE)) + (desc->vm_flags & VM_SHARED) && (desc->vm_flags & VM_MAYWRITE)) return -EINVAL; file_accessed(file); - vma->vm_ops = &zonefs_file_vm_ops; + desc->vm_ops = &zonefs_file_vm_ops; return 0; } @@ -850,7 +852,7 @@ const struct file_operations zonefs_file_operations = { .open = zonefs_file_open, .release = zonefs_file_release, .fsync = zonefs_file_fsync, - .mmap = zonefs_file_mmap, + .mmap_prepare = zonefs_file_mmap_prepare, .llseek = zonefs_file_llseek, .read_iter = zonefs_file_read_iter, .write_iter = zonefs_file_write_iter,