From patchwork Mon Jul 15 12:48:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 13733444 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 CAE55C3DA4B for ; Mon, 15 Jul 2024 12:49:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB91A6B009C; Mon, 15 Jul 2024 08:49:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E41CD6B009F; Mon, 15 Jul 2024 08:49:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D3CD6B009D; Mon, 15 Jul 2024 08:49:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 670546B009E for ; Mon, 15 Jul 2024 08:49:35 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 162FC4158B for ; Mon, 15 Jul 2024 12:49:35 +0000 (UTC) X-FDA: 82341968310.02.46A7A22 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf23.hostedemail.com (Postfix) with ESMTP id 9BBB714001D for ; Mon, 15 Jul 2024 12:49:32 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MsgBtdWJ; spf=pass (imf23.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721047754; a=rsa-sha256; cv=none; b=ygNoLxb6LJFt8EfAakW6f91oS8mUgUTidecU9ZxmefAxwRjCZuxGGE4Q9L0vNs8EYflans UJ8aI0tbQ+zzE4d5p3g8/k9hZhLPqh1fvmoKpE00RLXWSpP+SgsGbTy46JB9cbzk7g9l+u TA9B43Tg3rXUR/D9XqdIMXENQ+lGu3s= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MsgBtdWJ; spf=pass (imf23.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=1721047754; 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=7IlQM8X+w9Jbpz3qGtMT07Pt20M62nSEruGY4bQqXpQ=; b=imCvGCKYUrlYjma0rRtf6ACv5/3RV+0ii4bnIaXCWQe8MjwVUDCFnFN9RL1J6foMDBQsfU PWPug0KEdxtsfJONFUJ30gn3igtkWF6q5rWgVKQe8sr+dY6OoSfj7unvhUm6GH0ThhJcvi u1AvJCMLFPx405Nb7068VqRaUSkdfq8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id E3C47CE0FCA; Mon, 15 Jul 2024 12:49:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D220C4AF0C; Mon, 15 Jul 2024 12:49:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721047768; bh=Za4x1Iy/d7H0eflkTicTt1UaefhIWQ90YwrfG99Zd/s=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MsgBtdWJCSqIckHd8N/sLkK2H3UIksWen4AFqt0e1Vqov1QXoqSeqhnEyiEBfk0KI zj0dYtnefpLl+FmWTb6ufRTO1eLgUOQTtZsF3BZ2+dtqqeUn0cEVv3TvDGMR7c6Sem ZNRa6hMxaIqS/T0hzOUpgdNgTHHbIWxGSrfEgbTQOFeTgCDhc9xcUkD0aYgu1yu8e8 Qy2ZLRQn9sHe2ibmplFUdcKXFpNVMxxBTark2MPod1F/4YMoyURrYbO3xf/7YBGTRZ lZBi7Hg2xzw2XFivw95Cxm3vfGotZmDsB291SEKV/5Plyr5C8JMBdUihn6s8uWXqEi SNVMxc/c4ocbQ== From: Jeff Layton Date: Mon, 15 Jul 2024 08:48:57 -0400 Subject: [PATCH v6 6/9] xfs: switch to multigrain timestamps MIME-Version: 1.0 Message-Id: <20240715-mgtime-v6-6-48e5d34bd2ba@kernel.org> References: <20240715-mgtime-v6-0-48e5d34bd2ba@kernel.org> In-Reply-To: <20240715-mgtime-v6-0-48e5d34bd2ba@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 , 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=2845; i=jlayton@kernel.org; h=from:subject:message-id; bh=Za4x1Iy/d7H0eflkTicTt1UaefhIWQ90YwrfG99Zd/s=; b=owEBbQKS/ZANAwAIAQAOaEEZVoIVAcsmYgBmlRrDU4nWQP3Re9QBLBdg/iDcdaRe20/HAbh5B Sh/ulM1S0yJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZpUawwAKCRAADmhBGVaC FZu2EAC2wyQqv9ZanaKX0NuqQvQl2qcPF6diqtykkUObkhXK0jRkoEC+iEJPmSWECO54qgYrEMf aVXeh4ZR7BDbS3icu8iCATQzL7ICRAOfLPkM3ZFag4JsScuSM4JKijVGPIGAfR7zG6913stH+Pk aFE1lCE+eOyTUpo6XxYvMk2Oer15sWj8b5ZL2HO3Pwg3uofMhramJ9jxwAElIkoHuVA9JKxrLam Bp6j3uDOGbdZxecYvRzCD0Iprz9ZCVQblK4MEyISVe5XzHyNlWlmkKoRODyhnfV3pz5j6bvW/61 96K62l0sABrGRf+4lw4K2xekAP+pB9jgeup/7knviQJye8w68hj1kcwKSX6ckZkxS4CzZwTROQm 1VOBCYWGI4cbJ+V/ILEQTzNqkS67R5BCc9XRXgElutxcMXOMBtU8yQoQUs6z9HC5SQldvs/Bcgs IwvYbzhFvmyynv3B0vX1Q9mV9OkAdYHbfH27HtzXCqfPxfCpFwrWiTZTy9wKbYC36tgVy9nGH6S PNInEiAel+lNAF5n697sbRIQfTDDMbTjkB6sAjUQQTNzVPCPr/OL6Fnhzl50Ju8H+Ihzs9u8Ehf lTfaqd9QL5Z2kzDmkUkCXLkf1P+oDoD99tlMutYBCdj3NC7p8r6eZUrtoUa3pwVj+YyDWbe5R8y 0wRft36HqyrPZyA== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Stat-Signature: hk19ohtyfg6wwgriu1ux8mij1xaypnqn X-Rspamd-Queue-Id: 9BBB714001D X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1721047772-560865 X-HE-Meta: U2FsdGVkX18bRU+klPlNke23K3yRfn2mWO/eC2xjVtEa1bKWkneX9GhS8dEdXJFuUc7HjLehnsk8re3vqw7dxlDzY6DsXQC9RhF6984LWe/XKeobbUgbEgC336MSqKMjsXFk/3Jvk98E5TtCZdJHQBHuK8Oh4tEI9yrh4fXmuVDYC9Uu3Hgfe2DAwu4Efzs4XMiafLHcDnW0zUjdC9vpeyjpxOLamNiMn05+OKCDQWcuRunKaY0S7aXQHLq3rAPJ8WhMZ4hPHDtYHS+/2V2ag7uYaHfOs8VK9UT0yIaaBAt3q/FIcOReYHbCOVjmQ6wP4VxLKrIM516Vr3u3piFZhTrPQhb8/wqbtK02Y/rY3CtFsJhFOHXxhbRzrb529VzusbicQW9yKrZe6T0mEBEQ7IUtz/xDyJM+ztswxXwkCYQIDnGp0svnttaS3D2RMK81MYZkPzbpGFkm7oisQVj8qDbVTd7MsAm9vem3ZjBL7Me4m1syHrl5kdn9gR8OyvRc4s4q4yRr6wsVcitkwv3XOsXYXrx6YrVJ1WLSyz52nbL7ESoGfamKJNXqfW+53I0Z9sLP+2Xjn0Dji7c3qAjCotUPFIF6ugI7fcIeEDg++YU+kGfuoRik5lAnBJ7vF/OR4cOMoQXx/WAzToUwMoZKhgPaYIfAEkzbk2i3UHLYHMEgc0R5G3u8FbfbbyhVBXtWAK3nigLTSQiosHX3wPSViDRwlDwcODO1jzKhKqBmhV79DLF82MC0jKMfNgOGxHJBB0eiBBsZN7RWYZyfbU3nn6gBDPeBASLtaMJ3g+2t3T2SUQ4rTwR6/3mAjVLn0zuuOytNfgkURH2TmJmGenKMf08vhpwLWz8Vl+encVLJH1/XAHIECRX9gftFqNEiB9/3o2b9JX4XVcHSnHIIKu5kNoeFglMTPfwEmVZRf6TOApT5TKLxXHGWJAReVc9+wcA4Lu2Wfze6cbBZ2vV0yL2 5y03tRac abqspVIX/cK3NDL7gBe8jypQwHTEllTggPalxBQq2/aHiE0DbBfzdgaSIjyCPElPu/CquGWkvSWTMfbLNZPJY4DnSf8SStrrgvBcINGRAKbYHCVN7vpoQnmBVzYbuQ0UX/KsDqG32JQ3qkSbEJlp6Cf4n3yobYqGY7UZny6wt90C77rLwrm+HyR19jR3q75XlG7MwcSeTRQsBsIHZAOCgoGtYBdp6TckgubfzHDfePic1nV7AQx0Vu4HuprWliShyVQVtV4iAgEIqpW3hANOWn1FfLmgUqalsU/wkkEJqsU3cGP9p8GGmORjQiQ== 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 Signed-off-by: Jeff Layton Reviewed-by: Darrick J. Wong --- 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");