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 5F339EB64D7 for ; Wed, 21 Jun 2023 18:21:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E586A8D0003; Wed, 21 Jun 2023 14:21:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE16F8D0002; Wed, 21 Jun 2023 14:21:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B97D88D0003; Wed, 21 Jun 2023 14:21:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id AB3EF8D0002 for ; Wed, 21 Jun 2023 14:21:09 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7F948C07A8 for ; Wed, 21 Jun 2023 18:21:09 +0000 (UTC) X-FDA: 80927571858.23.58F588D Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2043.outbound.protection.outlook.com [40.107.96.43]) by imf02.hostedemail.com (Postfix) with ESMTP id 5A63180021 for ; Wed, 21 Jun 2023 18:21:06 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=none; dmarc=none; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf02.hostedemail.com: domain of tom@talpey.com designates 40.107.96.43 as permitted sender) smtp.mailfrom=tom@talpey.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687371666; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=n7WQgwUnIlvowLca6tfesDHaE6AffzelklxR0YPv2bs=; b=5IUtmwLOA+LiSHj7qzqfoosC0s2eJF7nDEQ7DArhVd+VHZQRr6yJdLyCLEJa3lYTRJdEo2 qQ8+8bWPX7B0e0dDBNDv+7arDifu4CGsVbT+8qEuOQau/8usl4EX84h8uBuSYWG4erhz5k ceawnSLnGaYrHhXmZQ/FnbxmjYY/W0g= ARC-Authentication-Results: i=2; imf02.hostedemail.com; dkim=none; dmarc=none; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf02.hostedemail.com: domain of tom@talpey.com designates 40.107.96.43 as permitted sender) smtp.mailfrom=tom@talpey.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1687371666; a=rsa-sha256; cv=pass; b=I5r1ljtmzlEz8xxX2wt9c1lEJWRBfDKHzfkgJ5x+NFg31HLOf7tXzhBTJ9w/CPeh2UTyAO PDzE/m3bwQ7sMUYX+xWhKmu2gGKf/lTM/Xh7A+ArLmZ7y0LY+XINMuzSrGonZlL6QaIy5L esYb1AYjyzzVblNkc/P3S3Plau4eWng= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nr7v07ezgcIYGko/0cLNlrscvaKeDbhl+itBiziiSh6RHZ9benFU0G82NA8aAZAH4C2oVq+CZWTlj/xDnx0sHCHjjhzx0wx48H0f7SaY3SXtA0dHAQxS66J7oAdRJcUaiiaArywkNBexp7wdRDA7ls/fR+F8Mh+a3b19XMbEd1KgTugHIBDe3rnOpEtMKQGl0Fh/pE5Vgd+Ul+fF+EDiyyqPhu5kK4tsx8W8LRJoz3cjZQJ+LM3m//tfjKnLVxPzZHOHSVg/xvxa0QAREh0MXdI/HzN/bRvoly2Bx/xiaebSfLJkkjW+EJKjNfHQTCBKjfKBjwWUtUVP1kb51sq1mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=n7WQgwUnIlvowLca6tfesDHaE6AffzelklxR0YPv2bs=; b=CC+4B6eWAKc+87dDalIbhJl374jn5MKG+QQ8osPuzxXuH5Hve0EkwTZBOr5chv9R9fEQ17B9ompjY8Gce+IPafzigUSkkJoU2e8Px6CNl00Se3qx8eiWdnrrxj3l2EJbnVHDQ42IS7ym06I/KYWI2u0BSu2S8XXs5VSaG7WJ9WtVF9UcRzKggiP42juhIWnl0m1bedtNC4+3q+lL0MLEmCM6g3dToiq36oDGJ+ISSQqk/PZHFb9DUuFSnXnBFhUOBhyURnKeH5PpEGo70ibrg4K2AiXsPNSQiGyHyIkVVH88e75WUhpeIgG5dCvE22qL0cg4TBck9vAPYbBofG42zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=talpey.com; dmarc=pass action=none header.from=talpey.com; dkim=pass header.d=talpey.com; arc=none Received: from SN6PR01MB4445.prod.exchangelabs.com (2603:10b6:805:e2::33) by IA0PR01MB8350.prod.exchangelabs.com (2603:10b6:208:492::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Wed, 21 Jun 2023 18:20:56 +0000 Received: from SN6PR01MB4445.prod.exchangelabs.com ([fe80::17e9:7e30:6603:23bc]) by SN6PR01MB4445.prod.exchangelabs.com ([fe80::17e9:7e30:6603:23bc%5]) with mapi id 15.20.6521.023; Wed, 21 Jun 2023 18:20:56 +0000 Message-ID: Date: Wed, 21 Jun 2023 14:19:56 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH 01/79] fs: add ctime accessors infrastructure Content-Language: en-US To: Jeff Layton , Jeremy Kerr , Arnd Bergmann , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Greg Kroah-Hartman , =?UTF-8?Q?Arve_Hj=c3=b8nnev=c3=a5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Christian Brauner , Carlos Llamas , Suren Baghdasaryan , Dennis Dalessandro , Jason Gunthorpe , Leon Romanovsky , Brad Warrum , Ritu Agarwal , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , David Sterba , David Howells , Marc Dionne , Alexander Viro , Ian Kent , Luis de Bethencourt , Salah Triki , "Tigran A. Aivazian" , Eric Biederman , Kees Cook , Chris Mason , Josef Bacik , Xiubo Li , Ilya Dryomov , Jan Harkes , coda@cs.cmu.edu, Joel Becker , Christoph Hellwig , Nicolas Pitre , "Rafael J. Wysocki" , Tyler Hicks , Ard Biesheuvel , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Namjae Jeon , Sungjong Seo , Jan Kara , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , OGAWA Hirofumi , Miklos Szeredi , Bob Peterson , Andreas Gruenbacher , Richard Weinberger , Anton Ivanov , Johannes Berg , Mikulas Patocka , Mike Kravetz , Muchun Song , David Woodhouse , Dave Kleikamp , Tejun Heo , Trond Myklebust , Anna Schumaker , Chuck Lever , Ryusuke Konishi , Anton Altaparmakov , Konstantin Komarov , Mark Fasheh , Joseph Qi , Bob Copeland , Mike Marshall , Martin Brandenburg , Luis Chamberlain , Iurii Zaikin , Tony Luck , "Guilherme G. Piccoli" , Anders Larsen , Steve French , Paulo Alcantara , Ronnie Sahlberg , Shyam Prasad N , Sergey Senozhatsky , Phillip Lougher , Steven Rostedt , Masami Hiramatsu , Evgeniy Dushistov , Hans de Goede , "Darrick J. Wong" , Damien Le Moal , Naohiro Aota , Johannes Thumshirn , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Hugh Dickins , Andrew Morton , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , John Johansen , Paul Moore , James Morris , "Serge E. Hallyn" , Stephen Smalley , Eric Paris , Juergen Gross , Ruihan Li , Laurent Pinchart , Wolfram Sang , Udipto Goswami , Linyu Yuan , John Keeping , Andrzej Pietrasiewicz , Dan Carpenter , Yuta Hayama , Jozef Martiniak , Jens Axboe , Alan Stern , Sandeep Dhavale , Dave Chinner , Johannes Weiner , ZhangPeng , Viacheslav Dubeyko , Tetsuo Handa , Aditya Garg , Erez Zadok , Yifei Liu , Yu Zhe , "Matthew Wilcox (Oracle)" , Oleg Kanatov , "Dr. David Alan Gilbert" , Jiangshan Yi , xu xin , Stefan Roesch , Zhihao Cheng , "Liam R. Howlett" , Alexey Dobriyan , Minghao Chi , Seth Forshee , Zeng Jingxiang , Bart Van Assche , Mimi Zohar , Roberto Sassu , Zhang Yi , Tom Rix , "Fabio M. De Francesco" , Chen Zhongjin , Zhengchao Shao , Rik van Riel , Jingyu Wang , Hangyu Hua , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org, linux-usb@vger.kernel.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, autofs@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-efi@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com, 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, linux-ntfs-dev@lists.sourceforge.net, ntfs3@lists.linux.dev, ocfs2-devel@oss.oracle.com, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-unionfs@vger.kernel.org, linux-hardening@vger.kernel.org, reiserfs-devel@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, selinux@vger.kernel.org References: <20230621144507.55591-1-jlayton@kernel.org> <20230621144507.55591-2-jlayton@kernel.org> <1f97d595-e035-46ce-6269-eebfe922cf35@talpey.com> <6f4bcd7d79f688120d80e96e86d7c521854d8e84.camel@kernel.org> From: Tom Talpey In-Reply-To: <6f4bcd7d79f688120d80e96e86d7c521854d8e84.camel@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AS9PR05CA0210.eurprd05.prod.outlook.com (2603:10a6:20b:495::23) To SN6PR01MB4445.prod.exchangelabs.com (2603:10b6:805:e2::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR01MB4445:EE_|IA0PR01MB8350:EE_ X-MS-Office365-Filtering-Correlation-Id: 9fbfc737-aa36-44b7-2892-08db72844160 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZLCznT9A2gI2Bnod11qzVuYKTRdUFyai9zFIi6Ury1zvBLek7sPyP9rq/nXB1g1G4ro9TQa19BhHS4udc3KnL/fvmqxGm3JH9MCAWOyl4xJ5sNNR9xP1O/w3l2JItEqPtdVvNSgsPLS1N6pgBrlMnFCfueynAMt3+U4udBh8PVMOJDOrxhzOBISJ+cpLBUebXBCgq4M/3i5oW0noPDlomxWKGHC7IKOaR0kWDb1rOFXZ72kTjitHhMqfNqbaW5bnMlnwlgiG5JqqhScYFhSdRaw7xlXDEWmqtYYf77NMFvP2d0ePrswPj2o+PIUzYYKSLPsKCMIfCnGjdF4JX98swKNmNA+2OO45IUCr8oBbMPEgJjL8XLfN93hbgh7W0fsG7qX05KT++EQjqKXC8Yvb2WZB8Bjw5GZ4x1Xy7JFB5DRqZvqe6jRx+qQZTFuZ9N8P4kJG3c92/R4lktI59IV2pjQKR/lb9EL5RQZLGjfjKM8hlIBy3dNUCgQ6/AaSTTuDjEd0NHKm4Fjxt2RdJA7VZvG4ntUV9BdC9hQ5rfmzdwxnvKBiS6c8F5FlPXtWn64ZtISe9kYiM23nriqZSiU8Gw1qyvJ5aS7ORKlNsdTBh9R753iWmLYP1XuE1+EdoG9cRG5u5vabHDp5frJfCBxr/bLEH0q6cDnhOEv9m88FZfI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR01MB4445.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(39840400004)(396003)(376002)(136003)(346002)(451199021)(38100700002)(38350700002)(921005)(5660300002)(53546011)(26005)(6512007)(6506007)(83380400001)(186003)(2616005)(7336002)(7366002)(7416002)(7276002)(41300700001)(2906002)(8676002)(8936002)(7406005)(36756003)(478600001)(6486002)(52116002)(66476007)(1191002)(66556008)(66946007)(316002)(31696002)(86362001)(76576003)(110136005)(31686004)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VWg4bkp1REcrK3U1d3lnOG9TTlN2bXFaV2ltNkU1bmFSeUJpMWF3NThCWGE0?= =?utf-8?B?QVEvYTZhRnFkdjFZS3VjbFJ4OUhHVk1GOEMvZGs1c01SbE56ZHQyR2JUMi9y?= =?utf-8?B?WjVUWXh2SzNrVU9mQ1V1SXBmS2ZRaGNRRk50UkoxR0RERFhHRU9vcnRNM1RD?= =?utf-8?B?QXhUMnVsbVVSSmlPZXRYRlNGTFVxNUhaUzhUOE1paXFuU3lmeU1ldHRCa2ZW?= =?utf-8?B?R1pXbnFEc0lVVWVTZ0hvM2pML3AwR2t5TVhNRUJFTlVIdzlVbU9Lc2R2K0o3?= =?utf-8?B?QVVYcERuMDk3T0w0K0grYzBZN283dkE1THg5dXNvclJKLzB0YUE3OEU4d1BH?= =?utf-8?B?end3S2FYRmVJZXRFSWN6MGIweFk4WUhPYVB4TEE1MVhEM2NndlpWVElob2Rm?= =?utf-8?B?ZG5NSVdpOFFKOTV5VlFPNzZHV3NtcUFSME5KeWViMHFGdlFYQnpXU1QwRmJt?= =?utf-8?B?V2FOTnc2QWpHS0hCRWN5VmQ2dVd0TVhBd1k0WkhFL2w3L25Ta3gzRTdwamR5?= =?utf-8?B?ZE4xWlNncXBaZmxKM1JqTjNhYjdxVTdwTEYyUEtKL1JRbjZRZ1dUUDY1MThn?= =?utf-8?B?dmFzdVUzRmtuaFJVc05jMkdYbDg0blZtbGt0ZHB4MWkrV1Z5eUhSWE9qckRH?= =?utf-8?B?amFlYjIycWJsbHpMTHI4NkhTU010Q3hBeUVzQmpUWERWTHRveE1VUXBHWWNV?= =?utf-8?B?dU9kalpOclBHT2xpNXNUY1cxdDBLdnIzdmpqOVJ0U0tKcFo4QWlna3hQcHVk?= =?utf-8?B?R1cyYy93b1BZTlQ3c1VpR2RVbnl1Wjh0dVhCcTFvL0Z6Uzc5Y2pzOHlTdjY1?= =?utf-8?B?Qzg5ZURFdndvekY0RU5qd2JCU3VwRXV4TU9LUHB5YytxbjFKV3hpNVJrMU54?= =?utf-8?B?TXltVjYwVXUyTDNWNGFrR1pkZnorNi9aY01lQ1pBMUlRelRaOEVTK3ZiQXBu?= =?utf-8?B?R25JWEF3UStSRmRtNFprWnhIOGpZeDVzSmFpZTZBZk44UXh5ZDlmWDZ4YzFX?= =?utf-8?B?b3A3OXFhc3pRalU3V0syVXlIWVB5ZGhBR1RORVc5cVRXcFVGa21tY3Ztb0Vk?= =?utf-8?B?eWNBZEdydFNuNnpGL3o0eVNoY1k3aFNwZWxtaWpNU08rZGR6Rks5TUFWVS9G?= =?utf-8?B?ek9mcmdqODBPM0VKemFGVFZhcWZFaUNERXNqbXh2Ky9PYWt1UmVFakVvS2N2?= =?utf-8?B?cm1iRUNFUlhPK3I4YXhRanQ0a0pYQ0FVQmRObkV0NGh4Q0N2TUVibFZBUzBT?= =?utf-8?B?YUVpVUR5ZnBOY2dmVndpSEtnRUJicDRqTm1lYUtPY0NWZXJBc1JCbHF3RitX?= =?utf-8?B?cDVjcVlIK056QnVCNlNCenB4RzgzQUpNeWUzaDV0ei9xK2lPWlBqaXI0K1Rs?= =?utf-8?B?V1lIZzhrOVVMMm9qRHBaREEyZ3dYNmNCSEQyWTRZenF3TFRpS25GcDlTaUha?= =?utf-8?B?eDlhRzRjeVhUOUVxWm1YbXBKdEhtRUtheGk2K1E0di9OcENaMXNyeHFCZ1Fm?= =?utf-8?B?VFMvTWNCY0NiNiswSWJRVkdIbjlDV29aemJRU3ZISzdZM2tVdFVOejZFVTZo?= =?utf-8?B?WmZOSGpPRUdERnFZZ0NlUXBzNFVQeS94US92djZJQzN6Rm5xN2VaNzdGMzln?= =?utf-8?B?Rkx3bVEvQ3Q1MFNoRW5lY0Fid0RrN3k5em9zcmNXeGhoOUMvK0J1WGhaOWNY?= =?utf-8?B?V3pRN095ZnBSR2dqTHEzNHR2akJOdE1lMSs0UUNMNnlZZDNNWXVoblN0QWJE?= =?utf-8?B?L2gxY3hEZVEvcGswMWkxVXZqKzFlaitmOUFqZFFwRW0wdlRNNmV4VXV3WjNl?= =?utf-8?B?Vytkd3NmMHJqRU1HcXVEVFhDV1c3cHJ4MVlRNGhrbm9PTWdHdCtIUlgzdFhP?= =?utf-8?B?OUdqVkp2Qk1MTUZmNTdRZkhtVVlNc1pHb0dMUzY5eUNPb0c2VTFhYVVqNkRw?= =?utf-8?B?a1EzNmRGNUtVbWNyRDFGa25IV29PM2R2emRwRHd4RjdRTUozd3hUS1Bpa2Jh?= =?utf-8?B?TVBKSXYzVWRTc1pqTHF1dThvUUptV0JyRGlrdXI2VUVSR2xsZ3FQSzZ6QnFD?= =?utf-8?B?cVQ1ak82UGtwUjJVNFNncE9VSURza256eFNCSnJtenJnTlk2bTdJL2l2T0Jw?= =?utf-8?Q?hy7mLoL+vKcaipZ706Fl+DKRM?= X-OriginatorOrg: talpey.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9fbfc737-aa36-44b7-2892-08db72844160 X-MS-Exchange-CrossTenant-AuthSource: SN6PR01MB4445.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2023 18:20:56.5422 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 2b2dcae7-2555-4add-bc80-48756da031d5 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: imahQGkpUgmU3UWOh30+NCLT14sxMdwncFQFBtTO3YHtx5XNIQmhyp4GMhuW2kYc X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR01MB8350 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 5A63180021 X-Stat-Signature: y45a4hqpnruha9nh9ihx5ux9zkjydr6i X-HE-Tag: 1687371666-429312 X-HE-Meta: U2FsdGVkX19qf5GEnOmy9qa+tjQnAZngqEDhKaolXMcgIU1DchEnbYZ5DphIZIonaEa+DhFm17BG6upSZ5FR1w77qU7Tfc/h3h9P9faL+5GAV46AJi/vu4xoGF82AzHIAcYCgX/WHm15IJ8QsXO6ItBdT2ic3m9f7T18hRQPgDVJyZtF709U/XxK6NttuDVGE7ymnbI2rxVv5HIaWcMTNVF3uDrRBVk1TVrgekofvPIC8WYhGiss3ICP4z6T8OeawQgFDIdiKk5rF/B8qXmayQGsdy+MR67HDKDow3JhT2ebo/8yqkN+zvisDDqvuxkvnkfIwy+ea6DF9sgrbcsuep81qdFch+GkbP3yGmGjRhFh0UiT8ZJI+7v47nUMRxyaJTBZF71s7gHaaWDP02L+azYUBF3KcXXvm3xQOHaldQAv2l2/GFehxLzhUGEYMU+uQnVc/wNy8htcWRd2dnshGkKIlb5Ai3ao1ozqmqZOZ//s2SLOWApsOJL8aQZOLQFUwmwc9tk4xwFUrrMZABGO8v4u2FJLoCCn6B+cs+cWhHnDw0J5GLVl7c4dhNFW2iSO8qeSX3bxZCm7boLHMGhqasshGuSr4x4pSrTVe+GSRv/Mw3EX93aJJzqiEslmTWo5tfSQyEr/eNWCGU8BuHSeGjub1/zLM0leYVCz76SNwuwCAJw83grnamvNm1ZoYzn8VBWL3cKlcmY7gu67C1phIhdvWDcdSJnPrney9Ue9EUSKi+mcT37igbm+7KQPlTwb66stvkVq9PeMziQyqRctCP22mFCNc/jVGGrOggwNZwLwg71XjDdNbDWRtONYMqxbTbeQEsNi5Y3ayFRoYskOjhCjSvXp5rx+QiJllaKCts4S/xqXC7jOh8hxppUrsgPMSBbGvfQOZ1Oh8/3mU2LliYZcz+XC5OPeLHwnnQqH9EsvKXDDn5AlANVgJj/Nt1I3Swq8r7A35Kl3zNJQX3C gToqJ02I hkxX5QmyRBXHhN8OTl+hjB8gbHd7kGKhFrddSKRIzTiAho/+sRJxMd1khXxkMatojIiCZoGfjkgmZtC5NrWUb/0SOdyZ9YVhRwZ2jPNAe6OeSQi1OLX5tdQ0Jeh7djBanWuy4c1tKLAWgibDjQKw+SdaJt8DWyyBtcokGoW+omEa5OkDLliOUSArFRfFX2iqHYIBBW/vxRwY28nMh22v8eP2MV09wqAuUSBNihOnLrp5ikb7vzDbXEyDm3rYVPmvXU5fq4EFV1WtV+BJlKQ6KkWWglcufpyk4oCN5OLsZsrJUpqyIO0wGxK5TpW2CVhFnNtuzh8yMxuoWKCa3z3mpmZiWY4toe7LBQDPuNcnOZ17C6GyhnZo4TAzxg5rTqwbboc3w7SMbRGuyxmAfOUeibzJHG4yar+rpA0YoRBYGuQawo9EEzV0NolWEZFk4HLSVHUEaDcK/JoBhQoWqgWB81DVrY9sclGaogkc8F0JlJfD8VTgMS6TtD5P/2HWq5olmVN0Qg5i1bVuuLl5bbPgHdOjvkVmnGHgFHEh0lYm17hWo0a7G1gBKCKjshUARBpp5ZPYyncf+7wzD7etVcJWu7JfC44tm3Zi/NyHzYNOfjZd0LgGnD/OaBNSxYStPU1guuv+fm1CPlI2Peg7Zvcxp2jPtcX2i70ZP+5YT/bTq72UdwzV9lX8ivQWg83neFkey1/5e65LmGRGJPq3wS/9mTOMWXWqpTNTfZ4kU+w2uBJEJBH4YCr5lL+Ys4o8K4+ODvQN7SJtWlejZFiLfDuFwOMxHDmZv4iXRMdNbHLaHmqgb8rmaGnlW1Z6crztLgjqy8eWPp3+kndh/qbOs7Sz/aLQQxaDNhy51P5g/NMZYiZOZTngNfEiKPOlN+6NA1cADj87uvpRV4gsG8n2R3i/IMd7gV6+DiwbcQv3uiJUSgVtL7yi6tLcWI1s3lUYRzha4ewqlDQuJOS6H1dqH9/hDW+fZuyN1 zq3DPIy5 j6M8G3B7XmyBh/eMV0oaLPV+eTzwdhhtATinUEMjFdBtyv4IDL2dneOB3GlmNrNYGA3msZDEMqRH5vvbOLi47Z6tGzkYX3Rw1sidS8ChloMkKzC45t89cou0yelGsIoObs/6wB0ZDyREr/S8+8zEV431UpnQ3/zIV04WjiTQaT1VtUm+pBkU5El7ewA3MSEyvC+nv7tagQfjeOCa2ucc5xujsDvQ1fi5i4K3TeySvvGpvgqJWXICZO/8axegwnSYMpn4TX244q0kL9aa+vjDPzIxwGMEAjfLJSLl6ve+ZFp4qy2bg0CMNulw7SbJX6Jbn+3IxY/rUvgxGwL2ncPtaWiBN6cePPYHKyCmPQxJBL+lKe02CZPFHZWcIMGBvwNIbQws0ekwKucO0g3AR/44rUS76TjtVNAnFC84uYs5Ey9XpqZHo5ro/Vp0v54UmrQRLFPVDP+gNi10IO590+X9pAlxHHxSgM23vM2xOgz7G5tAjSAsJvMVscj7e7HPU3tF2b8ZaLbbSEzbQ/eFQIAsX3/LYPZl9DTFauAzFuU2DEeKpP5gaemfHnOZZX1IwimLCgtjvFYjJgtHR/47IvDvRLd8mg6YyMBaqrZkQHOEILIEY9vazHkT/8Npcf7TOiZBWWRKwITBKGiB5D0p6d/fTlfXPBEcG52Oo+nhTE799wMpY8nlGXaiEeZj3/H0h396DEkxLXL+iNss7pXFOozdeCPP6ZsdAD3Uk88H4h1LiIo1XCsLWJxJw5ZG7rGR1TQ7DY52o/hBp/TEfi6tbH/aT84j0KClIbS/zN51l+GIDW/pNzqRaPVheG20pRHYWxc2JAmbIViCMYGWQ8eNguKltmKJ/gOvv6biGyUx6ojPzJ9tHH8e70MIRKNwUDR5jjgOLkxYPVWNfnaIIronNKp/J3A8rY+DyvGZDqIy64Tw2KbSs1VgPoMdyKjs8y8gXX7srp2obGglV1HoPMd/9QwUFMNr7YZXw ABtAyO94 qMtkpYT39sNZxWxUdcTuqKneNhA8LIP96bItawMa870u4osT8NfH+cWiYYad0XjFeRKSnh8ZHfZ7y9ObYzybubcEpJ0qqolNt71kTOh8BdPNsuP4HMWzbaRMV2WU9MfZBDCJK2BJo2ogqf2HGsVVtsvgr28sCuDoR4uvs5i6MI5kJG0X5/gTxSWcF6TLy84kERiDm/o87toohN4njI6+T3K9DYQ0+LlHIxfJUnmm83UtnA2KNXM6jCskxK8pXgji+NIzBRhdtnNkt4usVgEny54TAZbfM3JQhQDStp66fdlHrLm2PS2gqqSBMPdOqWhiABWxDKNLhdPJ17z2l/2thW72H1FeDsmmRZ2VMYauBW/raNo6+w+FP3XbIsKOe6mTyjxq/92jKz2cXIAasv0d5uP1Z15asAGv+ThN+RwRBZuI0RpkKIFmu9ryIenzdCpJBf2Ngv1E4OOK/Y56Utq+QSaapnfgXDDu9/rLUd4X5Ompu33zmxIkpvo4uZc3b/TkBj2d4MqAiBiTtTcsewUZpjVYORz6neTUO94KmMYHchgF4rpmk+65p8UeFlq+9QbWkk0IbSn2w8ppC7IZ07PhvsYEAMgE39TugiSYfnsO4sVvjZI2r+2YzBlA1nTSSsV1Vq/t0Wpq0ONC/bcP4yEhkqWAvJTPXkwMg1epeO66UEStBxrOLD2DrXRJzcC4tl+dG/6WyfEhITRKAkP0zAOWJHI8aB0Umluv4tzSzVfFubyoJ1fOx53wlwuSXzyVD2t9kAQLGQBkA7PiJ1POnB2+mkSXVLwqFqKs7FHg5GRHA0ydcwhZW8yNpfkjvcsgWNX3NDbk29H1XMpXuQKG5YUgBIzcvcpg+vTZeRmah+mYXhLfgp9BeY1KjyN78Qba5VY79nJsbPph9RRanAACMVx/Gm6+kqs3lCuQMHlq5nkKfiNuVKhLYKD9S5WXQIzYNiRY55yY0H2IzE96OeRczqyZyi4yYEhvz +7lzTe6U YbcSt3iUhLhaASpJHCOH+7M1TpvJRTrHmpM9dqkqbBySStSeXgPaOVbqSbMCo+Fx+ILIaOI79FGs6M/gDHPz1cacV/M4VYyZEjtt2yeyxJK+f5p8COu5SEkJpBAeWf/UNWh+N3LxBDQOIB2n11jF/lrB3g5NvZ9sIX9sBnUPoy+9bfKweo3uF6sxn2TxO8a3Zixr4TUmxkkjbPE4exZ0XwbZs5NJqivIc75kfIHLGS2FurZrfL92uSi2pyh73zI3yF78LUWvls7MBXnFEJArEjG/aMwMkgOqGNUzgASc59dCb6dCTzKsWxa6igsSfB7RWvkPJ3Jbn6Sq0lgtscLdPQMOLWIWn+I2M= 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: On 6/21/2023 2:01 PM, Jeff Layton wrote: > On Wed, 2023-06-21 at 13:29 -0400, Tom Talpey wrote: >> On 6/21/2023 10:45 AM, Jeff Layton wrote: >>> struct timespec64 has unused bits in the tv_nsec field that can be used >>> for other purposes. In future patches, we're going to change how the >>> inode->i_ctime is accessed in certain inodes in order to make use of >>> them. In order to do that safely though, we'll need to eradicate raw >>> accesses of the inode->i_ctime field from the kernel. >>> >>> Add new accessor functions for the ctime that we can use to replace them. >>> >>> Signed-off-by: Jeff Layton >>> --- >>> fs/inode.c | 16 ++++++++++++++ >>> include/linux/fs.h | 53 +++++++++++++++++++++++++++++++++++++++++++++- >>> 2 files changed, 68 insertions(+), 1 deletion(-) >>> >>> diff --git a/fs/inode.c b/fs/inode.c >>> index d37fad91c8da..c005e7328fbb 100644 >>> --- a/fs/inode.c >>> +++ b/fs/inode.c >>> @@ -2499,6 +2499,22 @@ struct timespec64 current_time(struct inode *inode) >>> } >>> EXPORT_SYMBOL(current_time); >>> >>> +/** >>> + * inode_ctime_set_current - set the ctime to current_time >>> + * @inode: inode >>> + * >>> + * Set the inode->i_ctime to the current value for the inode. Returns >>> + * the current value that was assigned to i_ctime. >>> + */ >>> +struct timespec64 inode_ctime_set_current(struct inode *inode) >>> +{ >>> + struct timespec64 now = current_time(inode); >>> + >>> + inode_set_ctime(inode, now); >>> + return now; >>> +} >>> +EXPORT_SYMBOL(inode_ctime_set_current); >>> + >>> /** >>> * in_group_or_capable - check whether caller is CAP_FSETID privileged >>> * @idmap: idmap of the mount @inode was found from >>> diff --git a/include/linux/fs.h b/include/linux/fs.h >>> index 6867512907d6..9afb30606373 100644 >>> --- a/include/linux/fs.h >>> +++ b/include/linux/fs.h >>> @@ -1474,7 +1474,58 @@ static inline bool fsuidgid_has_mapping(struct super_block *sb, >>> kgid_has_mapping(fs_userns, kgid); >>> } >>> >>> -extern struct timespec64 current_time(struct inode *inode); >>> +struct timespec64 current_time(struct inode *inode); >>> +struct timespec64 inode_ctime_set_current(struct inode *inode); >>> + >>> +/** >>> + * inode_ctime_peek - fetch the current ctime from the inode >>> + * @inode: inode from which to fetch ctime >>> + * >>> + * Grab the current ctime from the inode and return it. >>> + */ >>> +static inline struct timespec64 inode_ctime_peek(const struct inode *inode) >>> +{ >>> + return inode->i_ctime; >>> +} >>> + >>> +/** >>> + * inode_ctime_set - set the ctime in the inode to the given value >>> + * @inode: inode in which to set the ctime >>> + * @ts: timespec value to set the ctime >>> + * >>> + * Set the ctime in @inode to @ts. >>> + */ >>> +static inline struct timespec64 inode_ctime_set(struct inode *inode, struct timespec64 ts) >>> +{ >>> + inode->i_ctime = ts; >>> + return ts; >>> +} >>> + >>> +/** >>> + * inode_ctime_set_sec - set only the tv_sec field in the inode ctime >> >> I'm curious about why you choose to split the tv_sec and tv_nsec >> set_ functions. Do any callers not set them both? Wouldn't a >> single call enable a more atomic behavior someday? >> >> inode_ctime_set_sec_nsec(struct inode *, time64_t, time64_t) >> >> (or simply initialize a timespec64 and use inode_ctime_spec() ) >> > > Yes, quite a few places set the fields individually. For example, when > loading a value from disk that doesn't have sufficient granularity to > set the nsecs field to anything but 0. Well, they still need to set the tv_nsec so they could just pass 0. But ok. > Could I have done it by declaring a local timespec64 variable and just > use the inode_ctime_set function in these places? Absolutely. > > That's a bit more difficult to handle with coccinelle though. If someone > wants to suggest a way to do that without having to change all of these > call sites manually, then I'm open to redoing the set. > > That might be better left for a later cleanup though. Acked-by: Tom Talpey >>> + * @inode: inode in which to set the ctime >>> + * @sec: value to set the tv_sec field >>> + * >>> + * Set the sec field in the ctime. Returns @sec. >>> + */ >>> +static inline time64_t inode_ctime_set_sec(struct inode *inode, time64_t sec) >>> +{ >>> + inode->i_ctime.tv_sec = sec; >>> + return sec; >>> +} >>> + >>> +/** >>> + * inode_ctime_set_nsec - set only the tv_nsec field in the inode ctime >>> + * @inode: inode in which to set the ctime >>> + * @nsec: value to set the tv_nsec field >>> + * >>> + * Set the nsec field in the ctime. Returns @nsec. >>> + */ >>> +static inline long inode_ctime_set_nsec(struct inode *inode, long nsec) >>> +{ >>> + inode->i_ctime.tv_nsec = nsec; >>> + return nsec; >>> +} >>> >>> /* >>> * Snapshotting support. >