From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49236C71136 for ; Tue, 17 Jun 2025 10:11:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B93536B00A7; Tue, 17 Jun 2025 06:11:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B13316B00AC; Tue, 17 Jun 2025 06:11:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9DAEA6B00AB; Tue, 17 Jun 2025 06:11:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8D4AD6B00A7 for ; Tue, 17 Jun 2025 06:11:08 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4B63F140664 for ; Tue, 17 Jun 2025 10:11:08 +0000 (UTC) X-FDA: 83564474616.03.1DD998F Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf22.hostedemail.com (Postfix) with ESMTP id 2704DC0011 for ; Tue, 17 Jun 2025 10:11:05 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=SxgHRGPg; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=qUK+e+EZ; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=SxgHRGPg; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=qUK+e+EZ; dmarc=none; spf=pass (imf22.hostedemail.com: domain of jack@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=jack@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750155066; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3sjczkMEP2ds6Ww9PZcxYDmx/sUqeiWPhsOjgKLN16Y=; b=s0hILHTQ0NDIbEVzhCP4HpfjQMz0FDQvQVAwkxxLCzJEwY5nhIEruewRC5/eK1XLntZ/ZW iJY+0Ewf8orOBRPyR/fU13xd4I4wujhgArXg3py8L7Ez4rebRQMv9Y8DmyezMNCFWa+NtR fnBOl+USdQfBqa6AAdoMDmWg77ZeIUM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750155066; a=rsa-sha256; cv=none; b=GYwRFNe0DnD/yyhKWEutbH+VvywWl548EbnpZ+jjn9tEXw1onzUn6G39+eAjfcyKzvziOJ MIHGNAMbUGIzg9HALB5PaSxlPfanYYUd14L1FVu5wOBRJAyTK/F10wP+V57glbvSEZ6rOe ClzZ5igx0JfrI5ln3qqx4dTHoWNGGsw= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=SxgHRGPg; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=qUK+e+EZ; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=SxgHRGPg; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=qUK+e+EZ; dmarc=none; spf=pass (imf22.hostedemail.com: domain of jack@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=jack@suse.cz Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 55548211C9; Tue, 17 Jun 2025 10:11:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1750155064; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=3sjczkMEP2ds6Ww9PZcxYDmx/sUqeiWPhsOjgKLN16Y=; b=SxgHRGPgZGXWFWSHLxwCVPjFSAZhxdrWi6rEwIYG5UmCgayYqc1cSwBOdjsq8GqTCLMwMd enZ5t+lYXdxtwKzNbujFi9Se4qq1ZH5J07Wsm/FaHa5sghl/iWxFxPNmtma1iLtVRPYVsK /l3NPA70h7kkikDNWiAzTQKfH158tSE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1750155064; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=3sjczkMEP2ds6Ww9PZcxYDmx/sUqeiWPhsOjgKLN16Y=; b=qUK+e+EZk0HlXuD0XkSAm1sSOzoTl38raphsSQR7Vm4zAvt0M+26pE7BT1sa4mdM2A98ri d1avfmM87aEHtZBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1750155064; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=3sjczkMEP2ds6Ww9PZcxYDmx/sUqeiWPhsOjgKLN16Y=; b=SxgHRGPgZGXWFWSHLxwCVPjFSAZhxdrWi6rEwIYG5UmCgayYqc1cSwBOdjsq8GqTCLMwMd enZ5t+lYXdxtwKzNbujFi9Se4qq1ZH5J07Wsm/FaHa5sghl/iWxFxPNmtma1iLtVRPYVsK /l3NPA70h7kkikDNWiAzTQKfH158tSE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1750155064; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=3sjczkMEP2ds6Ww9PZcxYDmx/sUqeiWPhsOjgKLN16Y=; b=qUK+e+EZk0HlXuD0XkSAm1sSOzoTl38raphsSQR7Vm4zAvt0M+26pE7BT1sa4mdM2A98ri d1avfmM87aEHtZBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3C1E013A69; Tue, 17 Jun 2025 10:11:04 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 6xCmDjg/UWheGAAAD6G6ig (envelope-from ); Tue, 17 Jun 2025 10:11:04 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id E8BF2A29F0; Tue, 17 Jun 2025 12:11:03 +0200 (CEST) Date: Tue, 17 Jun 2025 12:11:03 +0200 From: Jan Kara To: Lorenzo Stoakes Cc: Andrew Morton , "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: Re: [PATCH 05/10] fs/ext4: transition from deprecated .mmap hook to .mmap_prepare Message-ID: References: <5abfe526032a6698fd1bcd074a74165cda7ea57c.1750099179.git.lorenzo.stoakes@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5abfe526032a6698fd1bcd074a74165cda7ea57c.1750099179.git.lorenzo.stoakes@oracle.com> X-Stat-Signature: 8bju4rfxacw8ei8cfo99ipd1f4f1w41c X-Rspamd-Queue-Id: 2704DC0011 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1750155065-711473 X-HE-Meta: U2FsdGVkX1/FwEmsGXYsXf8xhFNRMLb8hzP5djmD3FoigbSsxWMRYU1vIUalyPu+FaYSa5flG1ozt/ebRA7B9l5lMstNgJOnCsADMX99wjDM4C6og2u6qNF2GHiroE4nlhZGy/xHD5awmkDvzitfahgchaUWDVDx0OjMVE/Sj+TwJPo57vx0Qtw+sbT0IhRtQ/E4CpK6TuGZWWpnVaP/GsR4BKMZw5PJnRTbyrRtzx1VIdB4NTIuoFh0F92Vz94d3levz+o6naAg9Y19tHK6juFwe32RI8H9IUvlCXP+JhWoqHN1LhRdHwgVX3DLCIVFyHm2e2mGIekFLtofylWm/e78vE0Hs622jmD1v6aMwFAB2ft4wuaCuG718MPoq1LBJF97uPSlFglfdpglvVRIysqLZZ+sqRq8tYwTFEob5HIUWCtPV09zjBpjB4rFFmPmGhyMZnIpV4fmrZ9CHjQW8cBFvxF75lLOKtM76a9aVl6XPtCUTuxqI0fBwy9IVh/5sffUHKdsCE4jG0YdsSHs3Xwlgtn4o5RZJorWhK7FvaOLdwun+JcYqREejlVCh9vPgFcc4AKo/yGX+XoQpAlXPFr+jHMl/SK8be8vs9fBgAjbty1fFOligbkXsUNr1ONu91XCP0XZFraSCyEVu4TfdZw+auMq7uBsQHLDcUDXO0oGocjNiZaH0EXcDBM8giFZscHyVu8eSAFcHizXMZ3/wf88dDOk31C2JBc8aNrVUMFbUHoDguAV4lK4BaQ75PaGMo6aGuIHqHHG0CQLSuLArbtKH/+6cLPE+QF9Su0Kpz2ubPx0bF3jUkHzgU+fxVM+l2iDq8miB6NUzTQZRXEf3TEuHOeNN9Y1JbMfXuFwGD60P0WfIoxIbZshWKg1idH5Qz1qCoQXdhn/zFJMdLk/1HjfbE/ARjoIjIy638n2pK7GfHpD6Tu0Ew5z5LpAm4isnKJJduohJo5BKhGUb55 eVWamVbs iGRtWsXhVy+39iMEFiUvtNqOKXYbctUeQvSi7knbcFGV9CKK9NHBKfD1Z7k2fxhl44f7k0uFAYmeLH7FYKCuyoMz/ZEaCZPWqi6D+l36pR8J3D3/BtRHmKTaxtiju5YfHpHTDQ0DE5wAFPY1d19r9uDPh9KubNkeTRYzL4Mn+22ul0czj8+QJ/dGBx4+R6RA0M+Xu3vkdt6aVVaQA8O+XN7Aq8BngRCc0cTEh7vHciKK6tqhiJufw0Ib8NHixi9DAQIYfQHCOBiBLpTCGWlG/2bcVuyzaN1emAJOcAvc4npVtFVmn7gx+/C9jR54Ju8q7Fbg0UFzHtl0yAo8Wch4OOi4X2Vp9mCtMa/tyiR3+erL8aiI5Qer2ZCtTPFyA38qCgFNVqgY8pUx+l3riykoLzaP5enspBV3qX5LvebFY+pErnoBzFsFRFbN7yN5+lb2ZCpJRXWVr4PyiXFNEmCXi+ThHAY3rXLUpdPkgFCOLYzrc98o= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon 16-06-25 20:33:24, Lorenzo Stoakes wrote: > 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 Looks good. Feel free to add: Reviewed-by: Jan Kara Honza > --- > fs/ext4/file.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > index 08a814fcd956..38180e527dbe 100644 > --- a/fs/ext4/file.c > +++ b/fs/ext4/file.c > @@ -804,9 +804,10 @@ static const struct vm_operations_struct ext4_file_vm_ops = { > .page_mkwrite = ext4_page_mkwrite, > }; > > -static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma) > +static int ext4_file_mmap_prepare(struct vm_area_desc *desc) > { > int ret; > + struct file *file = desc->file; > struct inode *inode = file->f_mapping->host; > struct dax_device *dax_dev = EXT4_SB(inode->i_sb)->s_daxdev; > > @@ -821,15 +822,15 @@ 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->vm_flags, vma->vm_file, dax_dev)) > + if (!daxdev_mapping_supported(desc->vm_flags, file, dax_dev)) > return -EOPNOTSUPP; > > file_accessed(file); > if (IS_DAX(file_inode(file))) { > - vma->vm_ops = &ext4_dax_vm_ops; > - vm_flags_set(vma, VM_HUGEPAGE); > + desc->vm_ops = &ext4_dax_vm_ops; > + desc->vm_flags |= VM_HUGEPAGE; > } else { > - vma->vm_ops = &ext4_file_vm_ops; > + desc->vm_ops = &ext4_file_vm_ops; > } > return 0; > } > @@ -968,7 +969,7 @@ const struct file_operations ext4_file_operations = { > #ifdef CONFIG_COMPAT > .compat_ioctl = ext4_compat_ioctl, > #endif > - .mmap = ext4_file_mmap, > + .mmap_prepare = ext4_file_mmap_prepare, > .open = ext4_file_open, > .release = ext4_release_file, > .fsync = ext4_sync_file, > -- > 2.49.0 > -- Jan Kara SUSE Labs, CR