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 D70A0C38150 for ; Fri, 5 Jul 2024 17:03:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3F22D6B00A5; Fri, 5 Jul 2024 13:03:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 354A06B00A6; Fri, 5 Jul 2024 13:03:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 17FB26B00A7; Fri, 5 Jul 2024 13:03:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E4D5B6B00A5 for ; Fri, 5 Jul 2024 13:03:19 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A10D4802BB for ; Fri, 5 Jul 2024 17:03:19 +0000 (UTC) X-FDA: 82306319718.25.58F74B6 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf20.hostedemail.com (Postfix) with ESMTP id 21CA71C0020 for ; Fri, 5 Jul 2024 17:03:16 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pFNMlHRp; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf20.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720198976; a=rsa-sha256; cv=none; b=6elUXDwmDc4W8fwh0vR9cH03juSY3TCbgM7mX3btceiVyvEb+hfD8jgsziRDcipF9Px3fi mTi+I1HehC8n90921/bQStN6y05MYUBNuLePLEOFTYfwxU3affWvDtbNSW5E9WsECDQQdU XhvxGWml3RPxRsTqMTgA6fVNiGEn9Lk= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pFNMlHRp; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf20.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720198976; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3Jh+/RkL/JMZmQsliXtD8/KiOzj+g0LqxKDnzgwCyRQ=; b=o6WWfdS4vCG6PT+BLjMeQa+TjDqvH/GHuJLv3XSCVaPEv6pZX93dVQLPEhyfx2hGU8lHgB h125UIaYvX5urAEylOL1rMDAMQXn1lVCoz5DOCw92fLEhSkjZQkWOaGrd33wYIX6VA7gNt Ogh9v+4YGVyzsFd7gvNDiWZtkpbd51k= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id ADDD7CE3E05; Fri, 5 Jul 2024 17:03:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5AD89C116B1; Fri, 5 Jul 2024 17:03:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720198992; bh=fHx/mgJgehSKKeWi0EcYG4swNcOzJbq5fDt162sYPoU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=pFNMlHRptiCPxoVW4EOiR7WO0/zYXa89l/fPMgoNf5AcD1j0QjfFpk7GlhdsvRwIR 5V0uLlGmmChgtw4dhacU78NzZ8i1twVdYClzTvEBMz0xPQNGrpLuMqo3EADhzmgqyM xsvvnJ++uE78MbjIYGF0TWDBmj9VtzLwUhUKIniPBDV/IQQPrbCOkHeRHfyzR4FECJ XyrfqlypAWzBkUXaSIigSGZhQRlBuohxlJH3yYWjHB4/yUqOJ7+IbZ/HABim6RnL8J jqKGc5+xcE7OOh+CBSmCNtZju+LvwHcbs5euvDPZxaOJk5RLEdSiWUv/sqy36PHLJG r4vH5xiDFZnxg== From: Jeff Layton Date: Fri, 05 Jul 2024 13:02:40 -0400 Subject: [PATCH v3 6/9] xfs: switch to multigrain timestamps MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240705-mgtime-v3-6-85b2daa9b335@kernel.org> References: <20240705-mgtime-v3-0-85b2daa9b335@kernel.org> In-Reply-To: <20240705-mgtime-v3-0-85b2daa9b335@kernel.org> To: Alexander Viro , Christian Brauner , Jan Kara , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Chandan Babu R , "Darrick J. Wong" , Theodore Ts'o , Andreas Dilger , Chris Mason , Josef Bacik , David Sterba , Hugh Dickins , Andrew Morton , Jonathan Corbet Cc: Dave Chinner , Andi Kleen , Christoph Hellwig , kernel-team@fb.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org, linux-doc@vger.kernel.org, Jeff Layton X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2796; i=jlayton@kernel.org; h=from:subject:message-id; bh=fHx/mgJgehSKKeWi0EcYG4swNcOzJbq5fDt162sYPoU=; b=owEBbQKS/ZANAwAIAQAOaEEZVoIVAcsmYgBmiCc9e+P556Il0il5vHp8BAdjtXPeX1e8EOhLP jUf6awt9NKJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZognPQAKCRAADmhBGVaC FWn4EACQjm4ox/0vQ42fWfEHqD9prX/Xo8BUzeI6USK/05kred47VvYUJSEcRdTLyFRqI1YZMDu FvBotyrGsb13AYuiDIfYy3zG+irqrknjR/TJVqXQAYLOTUjAy1xuO6q4LA3bk+FVagWda/+mZqm EmcQLal71uzaxW6ngdjZKmhzW+TuxollfsiibuLXPExM8txA8FdcOQPVtm/f9Z/LtcPkvDupdhP FtJauLfBdtkCEXTsM03y71zEGNqTcpKZ2eXs8Pon/FENIvMcs+0+2oWSZdqkDfXBUVCNj0ESYj+ 9b6r/3qoiF49U+hT2eJ8C340v+dsB+FccYmGcuRiOIxdyIIcK4v323FwKe+0uyisHVw3azzx78w WMN/q6SJWSmf2edEhQ13rNyxGQptQLd9ITLvZX5PAIMIURo0/dCYdIe2zW8zxsfJ/1DbzdXUbKz 6N2a4tmjRKf2ohgQ8XMijdpPBfAcuvPluQvYfOQ0USRlErrFMEqH1/p+Og6eL883YkRKPtk18T9 zbrETeNMx68HzXu47YvKDGhJmv0RhYPFw1e3Od4FisiFMrCZjAo/90b98KFG+4/BE+DB5Xf/r5Y Y/76lodMQOMwaJf5jlk5g0l6x7gpzgNg8KoX5mmXq4uPlap+0OvHF/hjQwjsnU6ij7Fy176ax0O TylVmfjyKXvtWUw== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 21CA71C0020 X-Stat-Signature: mcrphyg7565i1a8t4ptu81g43conwyw5 X-Rspam-User: X-HE-Tag: 1720198996-967627 X-HE-Meta: U2FsdGVkX1+BxNOmUoR5txahblpDhMgnjQ22JI0HcwAlGQArTPZK6RJwE5SDkbIQShGwOEFa6TK73ezX057NDlKTri/fyaVUix4zUDfFkAxGrOgh2cetEtQa0GnwDfU7V6Tdysdobyup66/ENPmYfnAn95+Nzq0W1t8l7D9oLDVxqvd8/aZ1B95IjcIolZqVKIejywmOHxrW5HTKfDWK+Te3hmUHLuxQbN70nXwEoIBxMgF4OdPqMiRgYpd0KDxXM6HZ2JIX1PdQ+YPSc2lWujHctSi0FwX4HBze1chloDwDoz0zZlRHV0IBSnN2sB82ofL4Sir84AWan2dynXm/I2kI55+aJS3qyJ7RQdgLO+E4dmEOnz9+W/mxO8cxYfzpUQG+nxeYKyyyO6KfpWoB1Dj5mnTU786UFPHbAws3VKgsb9fz2yadV1KkdwSs9v/SAnmj9Zsp1y4W2xJZgHLweaoHri139cAv8inLGUm67zN4ghx18XY0RavVz04HW6KC3OqQMQdtrn4YUPuYDnQ95AW0y6cH32LRZIq1LYl73kVF0hcpJNR4Tbi74FrE2PLHusMzH15ipN9zFcM/aTQ356+PNMKfh2XRb08NU/dEzCdfqDVOJu3+vgi0kHxdjmp8l15iZGCfs9cPWqiMiGG+NrHXMk+KVVNjk5D3Imldc2X+rYjNnnmLWeHVotKe6PJPGAlDgaeofydFlRU46RtZAKhEve1f2SRI7vmeBrSNLN9UYzfMDaEXtmJrj2CnPRx14DN5GnXIXGG9FAD3hcgomltAjlNxFWbB37VXGsTMSxJE9jmLRYjaVind0cJPK61W8qCCtbF/7azQMD114Gwc/3HUyOFlvFlzGKpy0fKXYhmC0vIKXslfQQj6uw5aoQYBsK/F08aKHAqw5GCD5UZRMaTu5Syl7c6RNQNbdKapXAOdLhfEi4Ra73U6tQINK+JE3CyNiIAVV6dvgdeUzK+ PFEBuM7y urNXvQwm7jnlRKU13TwmUcCPWagVo+8Sc7wtZlcJ5V+HAhB0Cd9wm02m7EYqOhPVU8ASBS+GrQvacqtIP5r5nRn7i+o1IAciJQVf+gKXE83xPFWd3MSscXfOT2yAbUB2M9yc4kgn1OFTC9mYhCgIE8rklLH9qBgvoY6fvNIFnOtgr1Tz2cz/K5pKg7+oT5rZ7FOLVvMyuHiaoToVDvrjZORmMrIFH14DHYONeEf3iRs0To0Io6nkbbEn2Jg== 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: Enable multigrain timestamps, which should ensure that there is an apparent change to the timestamp whenever it has been written after being actively observed via getattr. Also, anytime the mtime changes, the ctime must also change, and those are now the only two options for xfs_trans_ichgtime. Have that function unconditionally bump the ctime, and ASSERT that XFS_ICHGTIME_CHG is always set. Finally, stop setting STATX_CHANGE_COOKIE in getattr, since the ctime should give us better semantics now. Signed-off-by: Jeff Layton --- fs/xfs/libxfs/xfs_trans_inode.c | 6 +++--- fs/xfs/xfs_iops.c | 10 +++------- fs/xfs/xfs_super.c | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/fs/xfs/libxfs/xfs_trans_inode.c b/fs/xfs/libxfs/xfs_trans_inode.c index 69fc5b981352..1f3639bbf5f0 100644 --- a/fs/xfs/libxfs/xfs_trans_inode.c +++ b/fs/xfs/libxfs/xfs_trans_inode.c @@ -62,12 +62,12 @@ xfs_trans_ichgtime( ASSERT(tp); xfs_assert_ilocked(ip, XFS_ILOCK_EXCL); - tv = current_time(inode); + /* If the mtime changes, then ctime must also change */ + ASSERT(flags & XFS_ICHGTIME_CHG); + tv = inode_set_ctime_current(inode); if (flags & XFS_ICHGTIME_MOD) inode_set_mtime_to_ts(inode, tv); - if (flags & XFS_ICHGTIME_CHG) - inode_set_ctime_to_ts(inode, tv); if (flags & XFS_ICHGTIME_CREATE) ip->i_crtime = tv; } diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index a00dcbc77e12..d25872f818fa 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -592,8 +592,9 @@ xfs_vn_getattr( stat->gid = vfsgid_into_kgid(vfsgid); stat->ino = ip->i_ino; stat->atime = inode_get_atime(inode); - stat->mtime = inode_get_mtime(inode); - stat->ctime = inode_get_ctime(inode); + + fill_mg_cmtime(stat, request_mask, inode); + stat->blocks = XFS_FSB_TO_BB(mp, ip->i_nblocks + ip->i_delayed_blks); if (xfs_has_v3inodes(mp)) { @@ -603,11 +604,6 @@ xfs_vn_getattr( } } - if ((request_mask & STATX_CHANGE_COOKIE) && IS_I_VERSION(inode)) { - stat->change_cookie = inode_query_iversion(inode); - stat->result_mask |= STATX_CHANGE_COOKIE; - } - /* * Note: If you add another clause to set an attribute flag, please * update attributes_mask below. diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 27e9f749c4c7..210481b03fdb 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -2052,7 +2052,7 @@ static struct file_system_type xfs_fs_type = { .init_fs_context = xfs_init_fs_context, .parameters = xfs_fs_parameters, .kill_sb = xfs_kill_sb, - .fs_flags = FS_REQUIRES_DEV | FS_ALLOW_IDMAP, + .fs_flags = FS_REQUIRES_DEV | FS_ALLOW_IDMAP | FS_MGTIME, }; MODULE_ALIAS_FS("xfs"); -- 2.45.2