From patchwork Fri Sep 13 13:54:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 13803494 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 CD764FA3757 for ; Fri, 13 Sep 2024 13:54:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 82DC88D0005; Fri, 13 Sep 2024 09:54:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DADA8D0003; Fri, 13 Sep 2024 09:54:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5DF6B8D0005; Fri, 13 Sep 2024 09:54:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3E4CE8D0003 for ; Fri, 13 Sep 2024 09:54:46 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id DB901C2017 for ; Fri, 13 Sep 2024 13:54:45 +0000 (UTC) X-FDA: 82559860530.10.D7E546C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 11E2D18000E for ; Fri, 13 Sep 2024 13:54:43 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Guyg9oT+; spf=pass (imf24.hostedemail.com: domain of jlayton@kernel.org designates 139.178.84.217 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=1726235577; 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=ck3nWieXsrJAf6sY2/zZebOwfktBW9MYXWP1f1edB/xcjONUGVadr2B/QjfcUIAuH5j8rB JFkBKsb9ZPW1IptnFssPmJfaVxvNzPwO6wKRQuYaM317XiR8odfGCvtTTF2E04LdGuSm9C AIZuGSRPhMF/rBN8j01AAnLWCULzaco= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726235577; a=rsa-sha256; cv=none; b=TK0zA+JwOAa35Ukd4cv60SfsJfmw0MzUYMosj7dAGUSkNUNkqz2YmBS8dVpHSrQFONFpdR 7q6sDMsrL+IHNXz1RnYMZ5FhhlP66kGtR6g2mKIUFwhmFl+U5peq0p2M2ljRKhnXMWFnqE ecaOG6p6+6KQcIXgqJrLR5mBwEfg38E= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Guyg9oT+; spf=pass (imf24.hostedemail.com: domain of jlayton@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 91D4A5C1023; Fri, 13 Sep 2024 13:54:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D8D3C4CECE; Fri, 13 Sep 2024 13:54:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1726235682; bh=bIaGrKHNkJGKwsIp2/9hx+nM5n7ktsZpZECPjECvfD4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Guyg9oT+NWYbjSrZdRkxccMwDJyyHviLQGBLIj6YRh1eSeYcj5XRoEBPD7kVxR8ZN GyKoNcrB7fZelDhspiG6fdw1NIHAh7Re3miRGHxszHzcBVQP0bPYmKCNAPMnpJqXJP fPsIg2O9jLiYclcDOv/EOPX1bOertHlhi2ReZdPLRBUxHSlL0IhJACB6QMV11/59bd 4kjxU5edIebTsYnGfzFc52HaSqqqvT80UDf9XBc6/lqzqJdO7hZs+k2SIAU1EjKEdj SMGOddLaCCiD/ousbygLJCpd7bPcnrZjwP+bGRqKUG79rg6y/+2nqMqzrYe7ZyeZ0r nCd0ta10pN5FA== From: Jeff Layton Date: Fri, 13 Sep 2024 09:54:17 -0400 Subject: [PATCH v7 08/11] xfs: switch to multigrain timestamps MIME-Version: 1.0 Message-Id: <20240913-mgtime-v7-8-92d4020e3b00@kernel.org> References: <20240913-mgtime-v7-0-92d4020e3b00@kernel.org> In-Reply-To: <20240913-mgtime-v7-0-92d4020e3b00@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: 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/ZANAwAIAQAOaEEZVoIVAcsmYgBm5EQJhpcPCTpuesPObcfS93aBbr6jli76FoBN4 +jNilKD6nGJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZuRECQAKCRAADmhBGVaC FSiRD/9bpuRwwKxqNOXbJWyZS6BnOCIPYZl0DiHb+px0bvNOxAA5lV17DfkdTVRGj4cdiG6hbi3 bC1wnn994yj4E32dOkwARqFjXzPmPlpBz0WoCR2SNcHHL+h4MySabeo7A7qqL3cuGzu0bFVRVnE 7dZCwqhvcnKxar/hIzkq0yAXuzqiew/VLCussXTC9PXNj+oCyAbFmgJipL01U/M1vcOICzApCu4 1EOa0rXnVhR38691CU9nxtf4p+JoxxAYmRVi/lkQKApUceYDJQYg+nt5/Fni+oUL9wid2EPcJ1J Hp6aDFYxn+7hVzAtpzM/8E9+h5SzbDaLihsNeZMCJZ/meVGkbeQiMJc6zzeQoc66TCscfCfv/Qo Lfcjh0ow2eXeiAIE15FbpYp1GAicEL6VPBSysPi/1Jb8ylPr8GfHorN33d/xs5UMrtmjeV//viW ezh7rm3eHTernvy+of89bdQS2IsW6UzbWnFyDuOiVnlC9a/SPzx5qg/XyTzTDveCNUbFpHz0uQ6 EwLKOpZXD6btK89GykcHWpM8yNAimeIHZ/fOx3hFfhSs/PS6uvIdFu4R/pKTQ3wg+B/lGE9r3rU Y5+36ESqCpmzO9xeAll4MeQgsBxsIaXYzZYPN3pi+sKPwFlZf1ttfriEIfWxJxS0ttxGj3FjgoV uUfDd4iYB+/XKNg== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Stat-Signature: qqfn5tr6mkf8o8mmrn39c1d6jkfer8sp X-Rspamd-Queue-Id: 11E2D18000E X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1726235683-907565 X-HE-Meta: U2FsdGVkX19/CeOhFjd9hmg+WKnOpTjk0PIrg364wTVhB5I6220ObH8BiAzIP1y2V08w5ZLuqYs7l9Hv965q1/NDvD616dipiiuBcInURldzW3PZeklzIhhOl3HUDSdAhJap5Wzi1EaKDILjpovZU7I3iCLXOSA2n92kTxkWbHfguJvbKBKuQ43qZ0l4NiHj7w7cSQVGlA9V2IU4QHRwGeFBVzyFUzp9JdyMXbnkOD1HOHQa3OTgtSXBsPXgrl0w3vtf6Yj6HUkz0/DMIhgbgP6aBd/K+zvSwtaHxlcrj48qd9UknKAaOcZ8RSskgdaz/cTjryiHhGcSVc33EbnTmUukE1nJnWq2q2jCfvcQw4ITdfa5dKINjViLPJzGbRZiFoaYdB/Cxwj0ZcpXMTtACfsaIWEDtd0lyoMUEPEqvVBSIbXhxfWxhtpXWP7yjvMkyhZt9Y2f2MrVtATZeTZ3YnIB8sjPBrUGO+vYqOkzyg1jWk0qivSTa4DFdYWzA5yx0jJDDvfmyhbR3PJUUCxS0OYilJ1DxCzH68XdPsCFeDxo0J+8lmUK7ff8hdLbCI79rIiMqfQYeBrnzz8GL/Oxao4qrKDLffAJnbRHeNWhtV8/Ya7COJ/y2chdRhIlxvfwRsLNHYKwzKRQ67KUTqQQ3EHvFjB2+8FG3zJDNAjsxyVY+Os4JknkDW+zdPQpaTrmif/kuB6R46DT9OICfjET/G6ABOOrO3iM+c4SYZzkqvfdC2DoNIDwuNq/snjCK/x7cWCxno9AVFZMopbY9hqA2OA65Q8vopOxeAg8/UJCSTNT6ULJ86xA+EjWGepNOK768VG6QsTic80TbyBDDKoLUizGaSctz1f3MxtcZ1XjmmiYPjOeGcxK6F1zz3h8IjVWd4dlDE/d+9bu9FvHb69A/vRqHF6RA0rphsR2Y/jLRjkcGlC0SL/G2G/dDQXrX66cYo+HJgODmJqhvQd6vtJ Y28yan1M rSA1Th4C3QTxbvSEHU5KfkgbDN4CKlc1VJnIFmoHHdH7/uHtVwMaghFToNWIdCnbIWNRCq+1Y8WUTsFWZjqN0NOQDVgjqVhOe3/Si8QWAI5atcWVOEC7rFqaPvgIUPkTEKWz/BIEMH11N0PH91/7LNajEv7aQOfQvNb/7Xc5vok0MaL7p9ZihTRSDerokzpe7QXKNL9vyvIVvT3c31ekI2miWVGNEpZuh80cmHJdGA63fEnrnB33A52S6i7XU9YndRV8fb8AXHuTYYmLNMY19ck/SMT7iLQXAAAI+RBpDcTIryzGNU1gEbuWdSg== 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");