From patchwork Mon Jul 1 10:26:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 13717787 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 206F6C2BD09 for ; Mon, 1 Jul 2024 10:27:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F0ADC6B00A1; Mon, 1 Jul 2024 06:27:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E6B666B00A2; Mon, 1 Jul 2024 06:27:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C21EF6B00A3; Mon, 1 Jul 2024 06:27:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 97A526B00A1 for ; Mon, 1 Jul 2024 06:27:27 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5301840CEA for ; Mon, 1 Jul 2024 10:27:27 +0000 (UTC) X-FDA: 82290806934.01.28D66C3 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 8647514000F for ; Mon, 1 Jul 2024 10:27:25 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=hoIm8fOx; spf=pass (imf26.hostedemail.com: domain of jlayton@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719829635; 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=mHBJ8P9xJvRjsbven5uK4O/4I8I92/ECjqgL0Z/oVQk=; b=MlcwUkO6QC/orJIXUk5pKd8DWpEDrg0tcHhTaMhL89oNIaK4GalNlP7PiC+aTOg+N/sctg H+WE020meSc1TveXmZBaIuPcd55uMULsy3sdOTn718aF561IhT3YaVxjXr8MFVBJJ+k2QC POWHlutNOL0Wgs1UKuqmNGVFzG1x2Lg= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=hoIm8fOx; spf=pass (imf26.hostedemail.com: domain of jlayton@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719829635; a=rsa-sha256; cv=none; b=vAssCGCBeUKW2E0qrg2lTUwxta06xvYWGiOGJZRd/BivEEm8fjFBpo7Ii4ninaqFvtSbfu UkjZHqWvf3yy+8BmaRCY2Kx2/QoRmO5T2Y9gXF8jdiYomWq+XckdcfNkLcnzRTmRL92Fq8 Dm+iFZHROFbMwL3rJc1bOYpAyFflMVY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id B1A0E6123B; Mon, 1 Jul 2024 10:27:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52682C4AF0F; Mon, 1 Jul 2024 10:27:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1719829644; bh=3rezV2gQwo9fH4xuVx823NKSfsCiMN8Xp4bd4oV0yb0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hoIm8fOxvgPzmo513dFHVds836zgUfxrxsfezK27z2Kntr3Ccg5rPlRJS/pcuTFaQ G7nswzIu1YimZVBpLt7tQ5R6wV/HnPx6uLZf2soZ9CDKUEiM1HbqumyTLOAtAhGSRs dAzFAeU98Qt38QvyoEzTu/NUkjoaSl8SMygT6pZqJFR3L1IXv5HQ2CPufxSzjXBgK4 y+fhw2lAgFR8p1dCadTicB4AiZjS+CB1XRhJmPjezrEVQzpECRnkbNrXvLSLiaWrTA +NkFzxvPw1OLI07XYsbox0HFVMI4AW4yn/F3tEhNy5CEavJdxRJGiMM+3aQGUlhlSp 6PPMnfpqL+M8Q== From: Jeff Layton Date: Mon, 01 Jul 2024 06:26:43 -0400 Subject: [PATCH v2 07/11] xfs: switch to multigrain timestamps MIME-Version: 1.0 Message-Id: <20240701-mgtime-v2-7-19d412a940d9@kernel.org> References: <20240701-mgtime-v2-0-19d412a940d9@kernel.org> In-Reply-To: <20240701-mgtime-v2-0-19d412a940d9@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 Cc: Andi Kleen , 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, Jeff Layton X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2415; i=jlayton@kernel.org; h=from:subject:message-id; bh=3rezV2gQwo9fH4xuVx823NKSfsCiMN8Xp4bd4oV0yb0=; b=owEBbQKS/ZANAwAIAQAOaEEZVoIVAcsmYgBmgoR5cLVAd2Hpbh4iHcyU1JIMfk9nPcm3mtCez brvBsNENdSJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZoKEeQAKCRAADmhBGVaC FVuvEACzNm2qzQAUpqWzHATLlmoRJtc4IZ3mD7e7Bpup8hkgbhrDAgwtnQCYG0W5P2FN/cXmVsw zLsXXNiPYrqBbATGE2FHsw2iBydcNbvaPxYDojlywTrFteA37WCi+soABdZFVqKaOrVaBOPUnA5 0npisxHrgjo9W63WFyx5QLiSpgFeyM17enz9GcvZneZ/HCWhuMXzSYX3PzHd6/FItgPPkKtNR9F sfVySvNN7gK0odlL+SqL5MZxRTwuj1YttI5LFVFKHuw2ZBiK3bTEJyjMP02m1+5k1+CbyK0zp0r 3RQ23HKGay9iepHvC2vmOw6KQ5RnjOmQbD+GDcMk/MRdqHlaA0alZzkRXWavm3tY9XhiFdYYsHr 4h40PaUS88k65gTxfRuFtWa5Jb6EAbqbc8+9K6QqRQSb+NO0NLYId1Ve9d9bJgX90gIGLPgaA6j 0xo5VWm1MWykp8P3s5K7wpq7N24n1FSfiQRV9UcuxEJnMUSzYXCUVUV5iV6U0IAUk0guo4ZG6R9 Zjt5n2+lNT/NTiPXdBt7ur8Vkv/7xEPcvxYMrFzGIWnytjQymhLP8/CEynyegdHuYsHNPmE1GrQ 0Cg/YRge7xgE1ii5QZT7ZYm/ReayNUa/gZpM2Sk9TAWeLP+hK8GmiNIVrO7vRiEEbwbZW1sCWqs ddQnOafv9nKh8dA== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 8647514000F X-Stat-Signature: 7gjft4an8a9zyzs6um7h6eme8sw93zkb X-HE-Tag: 1719829645-712264 X-HE-Meta: U2FsdGVkX19pB9jSvFefBUonTqjfJQPRjK8BJCsrl5SIGkWtcXV3S03Q1nO06hJiNQVhwNLtlwK51ObE0ibP7N12QkI0wWgOKCAagFEPCtvpe5K+T9ya3Skvi3vZCnAdBy/CcI1W6BARFFz8DTW56SduZ5iCFda1rKpcVQywcsmljliS2/7GQkA6ourA+/EyUsmZrgTglRmbd6J34zTa+BSXePwNVuQDuJn3Rl+Kxm95vE6CNp6BaVtd+EoYPSmSg79juTqMGYZInPggqbO/KoWkPIeu7FvWJI28qvoh4W25zJ1PwmZ86Kgr6r9QuNpvJAgTxbxumF6MHR3w4tcwZ7Qxrzpusdq1jj7K6sx+AfUbH8n6cKn9tha/bdQ3/+mGqxKJ2JFYhZUu3pBWr4e/EO969NRUTpjyHYyd4/yG6hqGBSqn/PbyA9qoMVZQNltoshKoYRgZDcfpgx45cGJlGC0HWiP4Woj0yNRv1loVn0VK7ZlwMT1xhRP8tmyg+GiirLXESpuy4SkS4jA5wSJ3YF/aOMjPck0OxJbJYNz36DFa7yQ7VOvwYQMjHhc6gyTAWmmw6KwuKUV/enZBCca3H4RNIsRaMjBHVSBn59bEeMKsX9XjhVUg3Ou71QTTe2q70MKTOhRL1TqokX+RT48YwK0whbPJtSV7M1ScuVv2zkApYILfuAfGvr1TssZgidu4jNl3KnDKPmVevw88ybU0XTXRLxlEfEs3W4USM9rdK/P18mSaKN72z7bT0X3WD3TmNI/EqAHL2dfFg6dyw/nKCrA1NHOnLS967ifb9jpf1d7mFfUtWAE3K7/PLoRimNBhSZDVgj8uq/AMW07UNTEkbbTuC6t5XGQNsEsAZ8uM4gGRiqfFyoqOQ3A2ly36De8B46YZfKC9yrImMbAjdsbnLqjHu9YykREsOACkHkfgwR/EoJDREFEsJbGWXkO6BNl0VM4qnHYfhMAy2Y20F/T sRIPpaMy qEACTDv+b/pSmY0MVCs4IND5mdoB958B3ZF/jGroBJHh5T7f5aNuWtRcJJD/jEHSKfLwxUQwFZ+MoyTf1RMx08jPdTYDR+77y2kZM4gOs3Oxp7QXhSNoIRPaaXx2yfVAbQHRC8p3+POTz09N87G5LMuhxuqTG+FXpOeWbrT5WmqO3gh/9aVF91t8cMU262M9bBELv7m990WXcXBOGYalVEkanpyy21V/d/JbMcZ1bWc+kN4AvnPYDuj+Vy1i7W7qAKrBDMt+sytEGEhiYLim8NSb1mofBLp5Quvs7K5fY0pEaMfG8KawBnzXJc9ywEcfB+fj2RQ8GBkyNZVWuw6y3+DU0BFfxdCFf9XehYcO2eZSY/l2VesExtF22JA== 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. Signed-off-by: Jeff Layton --- fs/xfs/libxfs/xfs_trans_inode.c | 6 +++--- fs/xfs/xfs_iops.c | 6 ++++-- fs/xfs/xfs_super.c | 2 +- 3 files changed, 8 insertions(+), 6 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 ff222827e550..ed6e6d9507df 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -590,10 +590,12 @@ 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)) { if (request_mask & STATX_BTIME) { stat->result_mask |= STATX_BTIME; 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");