From patchwork Sat Sep 14 17:07:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 13804448 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 6BD87C021A9 for ; Sat, 14 Sep 2024 17:07:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B74026B009C; Sat, 14 Sep 2024 13:07:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B29C16B009D; Sat, 14 Sep 2024 13:07:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B0976B009E; Sat, 14 Sep 2024 13:07:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 67D326B009C for ; Sat, 14 Sep 2024 13:07:47 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1DC1EA7E08 for ; Sat, 14 Sep 2024 17:07:47 +0000 (UTC) X-FDA: 82563975774.15.C6C85CC Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf27.hostedemail.com (Postfix) with ESMTP id 60D4A40015 for ; Sat, 14 Sep 2024 17:07:45 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WWxcOHhP; spf=pass (imf27.hostedemail.com: domain of jlayton@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726333610; a=rsa-sha256; cv=none; b=MNnRNhHNsf6EBldZRdNGEnCqX76XNxHu33p6mZFtZsOlfK6mM7uCtFHv9rtGdBMFHe4RM5 lHPDnQk3qzsgB9NpTWYW5khiZQQFrA3Vn5nh/9XeA4N1tXRpi8BT7HRZXJBg9cd9m9IydU HomgRtOMOost3CTuc2vKXzPxVqEa8ws= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WWxcOHhP; spf=pass (imf27.hostedemail.com: domain of jlayton@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726333610; 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=u0Vjbqo4iOeknMWhkuNlxJFkRlockym8GpRmEYWtsK0=; b=Xdv5f7/0M66K54KcF/SjUOR6nKRWt1E3ovWcZukyyy8Myhy+xR3tQWgj46y21J91f4xsnL knCz8tEgOMW06TX7/0NhB1DTyHYEQT+RaXqhMYJvL8SblXVUy4aU83WUnisFhrsQwVvqfl Xdfmtl3LlkgqC74Q4O9VGN+cNIi9X4w= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id E9381A401D3; Sat, 14 Sep 2024 17:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD957C4CECF; Sat, 14 Sep 2024 17:07:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1726333664; bh=bIaGrKHNkJGKwsIp2/9hx+nM5n7ktsZpZECPjECvfD4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=WWxcOHhPNBbvQOZoVEbWbSYGiCVIBwokWxYhCZncCHYiJQcTFpwERaEcR4Wh0Xbn2 3xgKHnCdve6t5zipyFCFIIBbKMWVFc9FsCdvQlwXt0VN1K59PGcfWb0gtf66zVh9ku 4gWzO/Exl3YH/sNl8Z55iJKZqKHzfWBD/8d75G3/rPfif7e0K/HOcWPYvxm/rvB6z7 ynGJN/c23nHNOBswZWBCa0GrR4QQylZNz9jykfRjCvUNB3lAR92/VFZcvrBWVHvkFG cgl7qUvXIQhMBLNMBiIOTqlN2+HOEptvI6n7QQwrcqDYZie6g2r0gfXk8R9Qa2FNtn LNjg2zn+ZKxEQ== From: Jeff Layton Date: Sat, 14 Sep 2024 13:07:21 -0400 Subject: [PATCH v8 08/11] xfs: switch to multigrain timestamps MIME-Version: 1.0 Message-Id: <20240914-mgtime-v8-8-5bd872330bed@kernel.org> References: <20240914-mgtime-v8-0-5bd872330bed@kernel.org> In-Reply-To: <20240914-mgtime-v8-0-5bd872330bed@kernel.org> To: John Stultz , Thomas Gleixner , Stephen Boyd , Alexander Viro , Christian Brauner , Jan Kara , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Jonathan Corbet , Chandan Babu R , "Darrick J. Wong" , Theodore Ts'o , Andreas Dilger , Chris Mason , Josef Bacik , David Sterba , Hugh Dickins , Andrew Morton , Chuck Lever , Vadim Fedorenko Cc: Randy Dunlap , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org, Jeff Layton X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2942; i=jlayton@kernel.org; h=from:subject:message-id; bh=bIaGrKHNkJGKwsIp2/9hx+nM5n7ktsZpZECPjECvfD4=; b=owEBbQKS/ZANAwAIAQAOaEEZVoIVAcsmYgBm5cLGuWV9a+ING+mQgmsUefPyvxOtCZHhgbDyr h3WPzWE+SWJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZuXCxgAKCRAADmhBGVaC Ff0ID/9dUQxrrNbqHpnaVnHsEUNWAcwDvm/Uzqz8JRH/iN4YRdGjThpIu7yEpdW72rihVUgzhdp MDDhOlQO5YqQqkgHr2CFKMZk6mr8pRtn85S+8NTVanoaK5CcKu+J3cM9B8uAhojNlwwLA08TIEg GarAOa/asTvsuyly/mkIWdl+B86IGn5U069ELYgegsSia8FaUxhSDP2aMn0ZXoP7yKsKU3iEGnY OKDmWJaL4kfYP5m+nQQcjCvXkSJY9Ek9EIZIErc5POHxebkpCVmS2EYzTeC7jcJsCpY0mK4euhj 05JoZnB5tDPT+Ct7GxZMu+oFKFfHk9kOG7cpt4wbXXB0V/eTid0mZdkeFy3Q6hzrgRxg+GoIJML nS4LFtcRuOl/hBIkH+gAMvbPxqQMHWj5xvEiFoJGKo1X48NfNJwzOids5R/ru8ztisjIxOWUIQ8 loAuC5LGF8DixJKgHNRS9S7Pf5fC/zOAJwTWbHc1WsnJ8jCSraBKi6yhlJaY2ky5i0OSdZJ6KAK tWQg7IgZtrxbNJuibvrXaOj8KBKky232I5TcB9IwV28ZFZiflP8071Ut5Gt8VEuoMan75ri60n2 R+g/WaoBLU5fySDEGF02y91KTtNV09R9oXBtC6oLh2HAY++rt9IZ6JzLzFbgWZCMyyI8/yQJwzq yRfbZfa50FD1bMA== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Stat-Signature: aktt3c6pe1d5qfs57qjx8x6spu4i4ard X-Rspamd-Queue-Id: 60D4A40015 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1726333665-630093 X-HE-Meta: U2FsdGVkX19Rg1N++LMxV/2YsbPucSO4FQgXMzfICLBvgrMW+7lPiv3KvRh1wyDLTdVDSfsw5GKWdFdcIs4CmkNKGcjKeh4hARzSSfOX2CbxMUTxkKY6espiWplem4/xNw59e85IbfY5MryULFmaNFcAXx1vRsOnzoiJxHD/SdzvFk1CTaZnoOxtIUw8asLn71azfntEffjoq9MatHVqzMoYNALpV+G/9eizKh0kKk3SWVm8DnpLVnLBa1USVOspuTjVgcLaSqohEyXI/d+VWXsIdxutBmXi5+FqVz3sokZGTvRS7RKHUe9wCBNt6UPmP1u0JprYxCpwOf3pfRE5mlcuzV0Tng7NFW9XC7nXHw1rLdnBbq33+dFoIMOrH6/s2t4mezMeRGSbE1pgb5iUaUXq+Kd4XcodmDnjIp1sAKb3JOCTrUbM8TeEjJRSkhDmVBsBoRH68X8vn6mLzNROe0AQsytJVb7pWlw2Ku0e9gNheBg8LJC3FnTBlqTkvB6BxyjuGTA1TWp3hIx+ztZz+VT+Jj6PBdfoSXwtblcr20Adqzxmq5R/o8Lcxb0d7A72AsE0lAX9+kvIl6nZ8Zez7gpnT7UTR+EvOORJ74gsmnu0Dm3aBmKIBDLbIgD5fOXMQ7n4ePUUW6Z71aL2ZT+DwnBIDJEkHBQjt1nZub4saAU+XYR1ZB+58MuUihfzgeTN5o5yrZsV3ADbFAUvKxGaSO9f+metKhxtP2ypznGJrSnZ2uiwxZfNo20YLXQZnaX6BCm96uFtbhv06mtyt7QQRfce1M/VjRfhK7wMiIQkanQg9gLYYHUG+zii1njaePJUpXPIqTVOLg/zq7LXAPt1gzZaTTKfce8nmL18YH6f6w1hkY+MdkbAD/okE3Y19v4Dd/B6xcDoaist67mcvG2yStJ7ICe0G8ZZY2kI/vgg0T5/6g4lCgSBqSJ58WsVoVIjUYfqv60iw8cjn2N6YW4 0FkU2svr GLaiuu4IQfGVlMBCeoAwUvmR7xEdih8nntq3PXrLw04BWRZtaE4B4EtE2UEZLqXApoUv+ZmuZd6pCIosEm01mnpRXh7UaFcuoBipShcwZ9indqkEn1EuSRAdP66aO4QseJBYMOFoExze+2uAcmFGWaQ6yfpSkDgE46UlZxjL0o/mCIIzQMm8gC66wkuLrKUf/ahWWIJDXtbrM59SCykoCukFCxvVsQ9iyFBMoXocOqe58F7Lx0vRuwTLnnZSzPI7Dlou/O9UuXLPhvrgW6+zdwvI+EIMOERgR8UBoOEO00qi3XLUnuwN5kO5exX8xLWQDE/TlCV1wZZWGY4v2Qthk9AqcHSQ7L0aztj1qB+Y7RxnqCtkWnPVUnfIsh+aPScu9mGFn7tCBd9/hYiQYazCKzCBsfKTFyMAAxqBltAvX1SG/So0KO3GshZP6/g== 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. Reviewed-by: Josef Bacik Reviewed-by: Darrick J. Wong 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 3c40f37e82c7..c962ad64b0c1 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_ACCESS) inode_set_atime_to_ts(inode, tv); if (flags & XFS_ICHGTIME_CREATE) diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 1cdc8034f54d..a1c4a350a6db 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -597,8 +597,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)) { @@ -608,11 +609,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");