From patchwork Thu Jun 27 01:00:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeff Layton X-Patchwork-Id: 13713679 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 4BF15C30653 for ; Thu, 27 Jun 2024 01:00:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7FC246B00BD; Wed, 26 Jun 2024 21:00:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 782C96B00BE; Wed, 26 Jun 2024 21:00:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D40A6B00BF; Wed, 26 Jun 2024 21:00:56 -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 3D5F66B00BD for ; Wed, 26 Jun 2024 21:00:56 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id E01AF1C348F for ; Thu, 27 Jun 2024 01:00:55 +0000 (UTC) X-FDA: 82274864070.11.1411E7C Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf04.hostedemail.com (Postfix) with ESMTP id 834D940009 for ; Thu, 27 Jun 2024 01:00:53 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=EfzWTGRJ; spf=pass (imf04.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=1719450041; 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=JU7/+xXfOKN2UUaoo8CEGbIKvBbdEbHAnnwYjMhEBhlunqfp4Dtz0Fr46hxL1lgozXGR89 UwyNTIOo40Soj1GWkRvVLsabZY9fj1McB4aOVGfo1BQCklt7vcX4dVcf+BeenuBsBG3dzz OvWcbWD+L6vTWuaVoKwexoo65hc0g8Q= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=EfzWTGRJ; spf=pass (imf04.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=1719450041; a=rsa-sha256; cv=none; b=XE8mbIJWn9R+ZtDZjA1jI11jTXvHPe/P4hAgF2mzadkBCcv/MdboShXsQYTm9a6zs3PBHr 1q+Uxp6EiDnUKO22OoOaf1PjTtI+B3pnRmkXZ5XejY6ht2IXRLX73qg8QrvOLM3dHe91o6 09qhEeTZIfAZxC5xiSej+hnXWmXGeIE= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id D9A95CE2D55; Thu, 27 Jun 2024 01:00:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21F05C4AF0F; Thu, 27 Jun 2024 01:00:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1719450050; bh=3rezV2gQwo9fH4xuVx823NKSfsCiMN8Xp4bd4oV0yb0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EfzWTGRJrOxCHnENJtqkTnFlbrYiNVm3Dtx+RYkf+tPkSUBOWalH+ZJXKWd6RDU3W YbIMpRqootIbyjiSHsXYL4WHyI58VPZgs/rn5wnyd1pNU9Yj9MdEFMFVGSPa0vMIpw erwoqImb0BeLarz0pB1AysZlCkhfHAUmFQvLQiRhTDyqGzMtBV1Voalxm4tbLh9gGV y73R4UwcKJMH6klQe0euDWaZU8vbA2cJ7K37Obxew60jD/3Klcu0JLP27DhEYmMHbJ aP1zaQMbakES7jdHpXa9HBN/Kou4lPJhjdrSc1beOux17fNM6L8ekNdL02W9V2oOOH jW5FYGG+kqj9Q== From: Jeff Layton Date: Wed, 26 Jun 2024 21:00:27 -0400 Subject: [PATCH 07/10] xfs: switch to multigrain timestamps MIME-Version: 1.0 Message-Id: <20240626-mgtime-v1-7-a189352d0f8f@kernel.org> References: <20240626-mgtime-v1-0-a189352d0f8f@kernel.org> In-Reply-To: <20240626-mgtime-v1-0-a189352d0f8f@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: 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/ZANAwAIAQAOaEEZVoIVAcsmYgBmfLmvW5qoH8Bt7MTLdRrQHNrS4Yp96iCkYHnk8 FyVEve6YHyJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZny5rwAKCRAADmhBGVaC FaFmD/wOagd7+4hFoYYtjpsB5K282B4LYANFzcPFXtXXPlrjjs7Ut0fwhI9WnYgAUHQekuPeK+A zDPV0MjYGwTZEDSr5BQGrKKaxff/X/gRbvNZIGsXSb54XtHH1+DEOPktNYObH43KjUfh83Yj3z1 y+tHn7ZbOu77J4lV2A32MWXQU5+uoLrqOlaYs+9vxFD18XxYQB+eidU8SFupTRIf9va4/KpRud3 X3FubvF7WzxgFVT4I6tht9+07MuaPmMxFULyqz/ptHe+kIEaCPBcs+zPIZFdc/m6hbz0VnFo1RB t5Jv2kgTnFF3pATlt6f4ioOWKct8PJT+2RitCv9Oxysxi60hmwsc1edesy5GJDZIKkyzDJnios4 vDqLZOvcsR1LwsJh7+1bizC/9FkuOX2Ssv6Kg8CM8wskPkw3HsnD8enqQseE1orfuygkYtW4vBj rpsLXWrbOMfT5DnGZGTkrEWl9Yc5j0hS7oJrujxu8WQ1o8qPMwnVMGvo9NRBzBI50ZpdI3iyFg2 EO+wgd0QFeW9Xwq8k5J/7TUExgdVXaWtMJwtFC5Kf49BfF8iUjfycWKG/8Er65r6TDQo1uWSBnr xAdLH+DVUkj8CT3cBfRstYF1uecD1uiUAMU9tjRxn+8uUMcmbLeCsEf4q2HTdAwwLRt+U26Zq4m QlSvFJ3+h/BDd1w== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Stat-Signature: bgxck8bbsmdga1jcddabn9ugciy7hshn X-Rspam-User: X-Rspamd-Queue-Id: 834D940009 X-Rspamd-Server: rspam02 X-HE-Tag: 1719450053-8724 X-HE-Meta: U2FsdGVkX198lcW0Qtv9mfRiqdmkWogTakurvuAJSEEGnCXefQJGrWifir2O+mPQMi04CBv4/pj8trEh/6QNdEKFccK0dCqOwwP4Y484KIa/QYfcoejjXm4E5v2/aa/yl5TQvWtfHvWgJnZlTGxjJJnT7mIKaLUWvv83Dsy60FSPHblaWgkegGggrdm6ObiZtBmdMb9fbom+e9iavL23n9FV+8hGrPovjrDYVPywsO6HbrPjPXPbho/fSUKyZM2h89IoXDGONS7D/ESzytTO6+dSTL6B9R42sKzxgURHREI7Gvod+oK20NoL81XDBMwrRWth6l6IikY89DO/oK8RQ2OX2/3/9OzOp/0BlOfaaRAGGS3Wj5scHyQcN4d/972Yhv7ui+eaEZuzb8Ggapb+DnVAgZDpS+H8V7KvxvtQF2pF8PoaCxKEgAyNRK82FIj1mB2/zRCxuN0I7bItnpCyOCjv1pm5Kk0frqfdqf10oerrCRFdIv43LmsbDVJWN38B/Kr8b1m4QSbDKprtjo1Cq1EdN6GHcQ92Je7ZJu8cs/EuM4oQAHyqS/e7zHBOOgZWr+OTL8GqWeZsLTZGc0MPM8XnezA4nDpqx/sRJ+Zpp6/OIHZTLfAeGWkaxjl4d7zOgs9jwTIlkzPQuUGQVfCJtEmHqQMts2RhIMbqskKdiXNgBiRwefHw2Hj7C3N9Gc91dddMjzeJKx07StcPSSGPEVQcpxwm+LKYEJj/Kf9/Br9BFbQf1raGIrp/AXvEI1+sE0ji5viLQJVzOJWhooxqrux3kCx92eW2qhA8c5wlOgAuBPF0wC9UXJ2v+2+9L2BJ+uKdtrKk3C8AdKSDrhkvWI8LM3gkww8Zq5ZZqrCM/ZTgA4SHfyB2Q+g5WG8PEqXOdhxWlNSBwcBScvXW4693CkU9efCa0GsK0THyTOdIdXmHkwC0rlqzBRoKn76yPmwZ2UBm2G4PSMOwdcB3iI7 lYTvAEPa 0rPrzgF5jOgPYEyMUVKQAvREw0kvkNNWcW3YvfA7MavBKgWCK8CgpkpXV4PTVgRHtt3+r6HsNKW6p/FeAzLtL/bCMbpDjdzeXgkZJlC+HOccfEvd9w8b9SvNalZkoPvXEOxe+aOriaDmjiyNT1GCY9mPltwhno9iuTlKrmyEJAx32HS+hUivnzso68iJPycH1JFwvbxjxIbEBt8MClUEfMF0x9uzkSQrkGjvBTEWBRe49xifmhFT0tq3bbA== 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");