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 0E9ADC3DA41 for ; Thu, 11 Jul 2024 11:08:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80BDA6B009C; Thu, 11 Jul 2024 07:08:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BD836B009D; Thu, 11 Jul 2024 07:08:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 634576B009E; Thu, 11 Jul 2024 07:08:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 42F776B009C for ; Thu, 11 Jul 2024 07:08:50 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0B0951A0398 for ; Thu, 11 Jul 2024 11:08:50 +0000 (UTC) X-FDA: 82327199220.27.E0CB19F Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf11.hostedemail.com (Postfix) with ESMTP id 8265040012 for ; Thu, 11 Jul 2024 11:08:47 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=OfcZxRI1; spf=pass (imf11.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 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=1720696095; 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=QtgomzbHR3KcjvS99m9ZDB68gqSVvAmjfQhMJPnFWPwuBExUejMDHUNYWugsRvoUTEyJJO F7NSVlLIhgjoahdG7iO35hUfaVsYeTUrOPrgSBSDuQJNLDkhuyW2jebCUVAv2Ih1xRMRwl 69+jCGxGeZ+TbDKM4PG1EiUnRaoKiRY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720696095; a=rsa-sha256; cv=none; b=ZoxPiRJ+2CxYRGkOK85m0GDOZADHpPM9y42uvKaj9jXNtmVjVFIdEHamO0ijJbOvsGnfHF uG9byYFNuQZyxMGbTfxNQWxKplRIPVypxIUn7FABkali6CMIpAJQxhe1JyqUuPfpn3RB7L XAZREeS7awJeC+EKm7yEg0/gZ7NjzWY= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=OfcZxRI1; spf=pass (imf11.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id DA67DCE18BE; Thu, 11 Jul 2024 11:08:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57940C4AF0A; Thu, 11 Jul 2024 11:08:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720696123; bh=fHx/mgJgehSKKeWi0EcYG4swNcOzJbq5fDt162sYPoU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=OfcZxRI1S61fYHl8qHzhI3AAeoHxhQ+TZqus8p3/jlXgd23s/5AvLeA/iHAMNu9dX 2Afrdk77c8F5kg5T9PUJKYDVh1AC8OyNV7YXK7vTTl447pU3OZ+thjT7wqgaoeLjAw xpoVoTBTgLt1nS8wwbbLjV4oNQY/TD3/gbbsmy21zkRUx8bSsOtRM/5LZiUaNlUMG6 3vHwisH4gHRWKGKfnSQa0bdXp8/EqBarQqYs0ZJTZQNsaUS40mn//uGzDipM8xMY/l Bbt4qp9y8ZRuuOPEZh4mPeb5azSLL0xI5JxQyZH5FMsxhe/cQd4MvO/WnvCVj0YeeW pleRtchZqlusA== From: Jeff Layton Date: Thu, 11 Jul 2024 07:08:10 -0400 Subject: [PATCH v5 6/9] xfs: switch to multigrain timestamps MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240711-mgtime-v5-6-37bb5b465feb@kernel.org> References: <20240711-mgtime-v5-0-37bb5b465feb@kernel.org> In-Reply-To: <20240711-mgtime-v5-0-37bb5b465feb@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 , Uros Bizjak , Kent Overstreet , Arnd Bergmann , Randy Dunlap , 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/ZANAwAIAQAOaEEZVoIVAcsmYgBmj70lX4OEuE/qxmSz5H5yszC0h3kRUmqoeXVzO 9+ohuiXnomJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZo+9JQAKCRAADmhBGVaC FVKwD/4nUE2xnHwjBoFzgjJ5fD/kv/mS9yEN5YGF/355Lk7Ayx+lsUACghZYoPm2AU13LRQAg9Y axQhahdEmYPMVxmId6ETZe/uGV5uA55R1M5A8rVpkkElbzAXnB87ASBKfjkuIFNANnv4ZJcGklC 9QUuH02p7d7rBLpfUBLMG3H0ikQu5DgnEqba0KSBKJ8RvQrY7PSz4GRexOb6pwC7tEA3uSl6HPA bCa0E7/lcuiduqPeM89Q3fnU0cD39CzvaX9DbfD0Bz9JLc07PV6MR1g+9f4Gz/q0XaRj59OuCtv iS8Uu4MFDT4p/B6FP2I6As1Jr2SOBIf9RUqsl0fc3Fow45eZ346ALIuwXjmy2YAZbsdTy5g/kvn Kgz1YkcOU6ZTaN8edZD6GrgFT9+h9L7ewVPlFGCnMMVC4TKZBvvAh2g/d9Dw8ZBs0UiDxtU4OmO uAEzSy9lf3IRN2K+MgipP0l89f6yft5sdpnCHAimcdGuZN/AF7vRmEoW2+rCNgN5hZZ0KLJbtWq dsBKD7sbQKF7fMWaFdVgLTC8JtNAg+IIWXutwkOM1w92c69GW5nXNpbmZWa1wSr9u7fG8bu9ULp hI2I2Iz+KyK20ocK4rZgnBgII4Xa/hM/6tDuJrv/wohXYkTwD/uySqf+M8sepMhqgIhyFoczp4W X6W7CoD4lWXPXlw== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 8265040012 X-Stat-Signature: zexkfsixnm8jghxgj7jy4exq9hptws88 X-HE-Tag: 1720696127-949470 X-HE-Meta: U2FsdGVkX1/rsTr84ZQSgUeTCf1sJISlLk5l+KnBf2EteEcy45gGFjV/oReVOF4PFO7icPOTi1sIAUzgEg6zedt8F+Vr8CYLzfKVEBpXV5mJ2Dq3aH9q197fjMZOOqPicyqBatGaC2ynG4WNR0etTRe3XyR1oN99ZTFM5lYXdvfoHzIa9B6PSXyq28yufpR18V4WKnul54l9FIku8lmfPf8Hgtnxpf0CY9RzIdLfTtTpsxMmot+DhR9VqRAOrB5GhTY23IQqOg74txCCSMtfVeeCuAuidLSri7wSAzBik14ClV6dRXUqJ2xgvhqTFEeW0dH+tpwd5dpmNdXLmbZQ7y8ZHuQqzGTASpuv9M27Jax2zSUwEZkpuqqE83w4W0k37VW13KvHUJ9BYVMu4MPc94B+cUDT7IKaru7h+LCrgiZaWIc7lCpYwWhC8WX4FCi0UhmflkdPPfaKnF5vUFATGmzq1TCxVtRLJqzllxdYoZq4TgfV/a5QZUFnpcyAot/X3hQxaa/r/ZIRhZ7eTOZr1yKQCnNqZmxjxJV4dhl8JbkFMbdOxzwTu3EDUCzUDZ61dbY3MM0TOMB5VJf+i3PqUe8ftZtJ9i8DT6pXg48gtlBKHXG3DfeA92p49Druvt6PyTC/HpGgJT0vyXrs40h0Cz5aatoChZCyYvrLvlXcr+jZSkE9ALGFwSq+FzBI28TqOdeWGA7q2VwF7wSvY8IZ9do+mU1K31l5MRG8TO1q+qf+eEEYJONTcPo6e3UfuBtE4S9v4P5CdY2VMp5kqAJ6DhTxOGV2zbsLRYM3BnIl+TFIZGTblcbnxe7dkDCIlsjdTaSXf8ZYCmZcegpcNQoHftKC9c36LSdPqQtb+X/2CB0W9PyA7HUOB6QvNLMbLJc5pL+3amPONRt9OxSqDANNwJFZjiAQTmoVebnQf4l2CbYPVIJ5fu/ozT+aeQ5DkLy0XQJT7twICsCq2jA1UIX 5NRijZGU cNsY9HkD3kCt9+EiwnwyjUnG4684e4oDPcRQDzRLZA1c4e7WXUw2HHYCgfjtB9d3Yd/CHdQmDTit8ziWGLl+ECorZg+k4DwkcqnO+7Ch24xsyxiOZFTfpKbKiYR7PAsPOKofTRCYE0g01MUvKOUGykznWRXb8UhrUdCU4+nt3qu5+A7Scg5TgjZvXwdd3RWigm08ZhDlDmXyET1V1k8QWE7/cYnIhg1AYWDVZFVAkQElw38rybYLFJdiGG+YLprkLcfh9TC5KL5hLz48f/h3Om1kvUUEyaAXEqCkxHw31DFS10FYU9tNcqhvqkqr9TPgzKAi69dZmHQD2vGbNyzTxFNanEZdj3kCfnYVqWAqgAaqeKag= 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