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 D03DCC3271E for ; Fri, 5 Jul 2024 17:03:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59FCB6B00A8; Fri, 5 Jul 2024 13:03:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5294E6B00A9; Fri, 5 Jul 2024 13:03:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 355E46B00AA; Fri, 5 Jul 2024 13:03:25 -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 0F8636B00A8 for ; Fri, 5 Jul 2024 13:03:25 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C97A712028F for ; Fri, 5 Jul 2024 17:03:24 +0000 (UTC) X-FDA: 82306319928.23.596F740 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf08.hostedemail.com (Postfix) with ESMTP id 26A65160022 for ; Fri, 5 Jul 2024 17:03:21 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=QIWijJEX; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf08.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720198973; 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=5vMS/3B7M9AXRjhPTEbSrlkhwACcn/9XxJJqb8Ng0DE=; b=vSBrB0T4ZaNVvgR9ytBy5frgTe6EWbU+Uj3ox09Cgkf9CrPw/apqKowHX5I0Y4JNNGl40k LOoOyhbXm2NwRnaHymDbKG7qdtuwvIo5iUl9mWRIH4oy30xg2sXYiYvCgngmZmgFryQzyf IrwIjdBVPRU1w1XpRkBN7LzKbLPE/YM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720198973; a=rsa-sha256; cv=none; b=rcWFmVX5Z/scvyXhjOKHRh2ZgePGtBwpA8k4Hyss5NbxGuTA6yuS15zjO7bLsNDrTEOZ72 y3V/ABOyHLl/QwaFjTZUFLxjjAmBBT+/dMWo6+kv13g6RZdnkeUN+dTMAK5lINOAWr53Cb lIcIcJoXAYm6y5iKWM95U0jcpy5z4dk= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=QIWijJEX; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf08.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 0A4B3CE3D8A; Fri, 5 Jul 2024 17:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4208C4AF0C; Fri, 5 Jul 2024 17:03:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720198998; bh=xTk9IFiZeoZdqPbR7bcsVc6tPLRLkOIJYDVl81q/MME=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=QIWijJEXIlt9Fzjqu0/oHnvwFuJ2XenRfKa2ibEcmz/gfkePuJ28kk0schgfhbNNV bzeyvITyCAeZ4Frg9k7fKKgCKgxo6eyVfVjzqDS21h142buI5F0QAm8aYVNdye4fuD Pld9qED4V6fAh0MLvH50sJ69JOuyzeeQ/zT3YfyxH+eUe/+fNLP/oiK1VMI4+VKNgy Is1DSUdyjI/XKSosEZsvRUs4r06Q1oIYc8WH79i5AodWduOBksgI/GQLD09ksNhgNk 1/emMNC3vRsOxgPhdJyGSRDZVwYWuHNmQX4CqullxwRCJ8t/xeGmTRl1DWB/NdI/ad iFzvu7RHMG0tg== From: Jeff Layton Date: Fri, 05 Jul 2024 13:02:42 -0400 Subject: [PATCH v3 8/9] btrfs: convert to multigrain timestamps MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240705-mgtime-v3-8-85b2daa9b335@kernel.org> References: <20240705-mgtime-v3-0-85b2daa9b335@kernel.org> In-Reply-To: <20240705-mgtime-v3-0-85b2daa9b335@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 , 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=2583; i=jlayton@kernel.org; h=from:subject:message-id; bh=xTk9IFiZeoZdqPbR7bcsVc6tPLRLkOIJYDVl81q/MME=; b=owEBbQKS/ZANAwAIAQAOaEEZVoIVAcsmYgBmiCc9ppo8g7YDcKxR/HjaWHlTOUSO1fFuG2RWe rzanvFK2BiJAjMEAAEIAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCZognPQAKCRAADmhBGVaC FXjAD/9SLGHb9It2EGmGcwPeKpz3kwVgydgjCzH9vbqWOlCCrNmmKEuFVdjDeDAteD8frwEH/oF QaCpT6sFLL1YujnB0dXSUN3gadh5CvnJ2UqqkeHfbtRBC3MSiT227r/ouwiQuQ/Wl7CBqDkpYPD 5O3iCg2thusEQzq/SnDL5YJvqEcVT69C1Z6ieDecyWde4cQw/Zknu8IFBH9Wm2UltSah4L2hMFG 75zBSOlzAO/8fg4MetXPWYPXePRSYN3wM+Ml/+fTkEc3eFtWONe8tESuNAX37Ufl40+ogdAY4H5 joJynG2YsCi7wlYtHH+m31T+dauR7iny72PNZQDClsV/t/5GCDDjT6p6y6RZ5kuyXPXxsdG4aaO u6sFQSqKWByK2f1KI8hhx54DxjXKWi74TVtWEc1MHi+cHp/t1PmHBOQJi4erhjaRHN4T8ri8Gy3 VRooo9gMRkLP1Onmbvj7K6aB08Cs2dUkRJBpZTWGB1YFKji2sZeLA7DGEpEUfUyi/fWOHrS1WQ2 4VCA4Hnhgd0pOIsyj88N3dcfPvU9Jg7PieGdT7X4mSEoONnb4l6VfoJYbEQY4NnucRbDvFJKH6V UafPnPFxUCooR4tvZua/vbEvbKr0T80kAFAVgZCKCgJFJS1NR6owJ458/BeoZW41C9mhWfWKP4c PZJJJzXMnFGdWEw== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 26A65160022 X-Stat-Signature: aai4ubte5amnrjsaj41wsb6f9swbh6db X-Rspam-User: X-HE-Tag: 1720199001-124172 X-HE-Meta: U2FsdGVkX19wDR3jYHT9jjJQRr1/fGQerWnhX48W4xw4Cp3HPBk3BtvD25gEIalXKg9geLLxNZ1djY9YO+GsJkKXJiKHIoJXDTb8JirNRVZfeQbUQJPtbIPYy8loTZf1oXXrZ3OpsSoK0za6NzxVM4gAIKt0tos165fSqGbyhu5tFK77nfkkI2VNVdInFC0v9NnSnBG+FWFFzZEG6MkxukjybzLG7EGBqU12+ft6zwqpLfg3BpUvVHtuard0lhy6Fyf/CwjUqfHPFbUkhVXJHlE51wXG/lSlwEpA12iviMEtctxNeAuIMXNh7Hzfn+OysZjOSWoJKjihaBYHR8/oUyv1VuhhH8LFc8Jndb9tifxSXVyUNO4Td60p0a1Sy2/1sfH9Fu7csLJlc2/Ek+1KxpIF3dAIgmvRXchTpGwKwcaxOJgMSQ9U4wYllH24pJvEU5HTqebzCHN4c5RgOP3+iTWTD2X8dPB7FFzuyefoV/DpwXpQ5m/Qu+wsIFkKgvA1rXibdUnp60oBpyaY9M0llKJaWnL3xGsjS/dcoY32EIxvISAI6OPTCUN9aabkS8Gm5aISzboyZ9LjB5beP55/ZBCOTUUscTyp+Ziuw+fYMiaju3JR1k70AuASAiZ5xzDKrRahVUDBTlZqQDKxpPofZUqifG7oWn3hwwP6wed4UVmr3QJtPjFx6Dn4KEzeOlh6T/XsygkCkEwucRIFZCKmTFzD+kbSi3jTEf1hcSMl3iki9TU+b6xUd7B1/pctSUnBx56+Db1OWVfBpGMRzj+n2wp5DBwCrlRV0aTRxVitLQyB/++no2PVG9VQjPYn9OTw12zNd8p0MARATXN+bZKxTCo1g1FsPTq0eezpaKwdAI7Nx7LnWxERqkWw9o23qZVILIetf5MtH3kVWAGy+gANnVU33akldp0sn252D1us9qisO3uUkxsq8NzaSBjkNOUSoCXVc4sGkONi/hnPY5x TL4zs1zz dAAkwAA4OgJD0QebPKL4S6YpayB0xsX55C6ZvruzA5pauI1fqBQYsx+z3JQGJIPvneY5vaNSJKtznJRAg1e4LalmE053ByEZ0z4ZfTZ0LRferFT3652eAFXvhRc9lyge5tuEClnLinoGYEWMsfMUg8g0zs+8TcRAlS9hJRvT2A7PfHvWldol1S+yvEU0wF9+Bip4Raz6++jhh2X4oSWvemJea7OnHp0qhsrjU1ywLoTjZl8Ze2dzsZfNjmQ== 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. Beyond enabling the FS_MGTIME flag, this patch eliminates update_time_for_write, which goes to great pains to avoid in-memory stores. Just have it overwrite the timestamps unconditionally. Note that this also drops the IS_I_VERSION check and unconditionally bumps the change attribute, since SB_I_VERSION is always set on btrfs. Signed-off-by: Jeff Layton --- fs/btrfs/file.c | 25 ++++--------------------- fs/btrfs/super.c | 3 ++- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index d90138683a0a..409628c0c3cc 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1120,26 +1120,6 @@ void btrfs_check_nocow_unlock(struct btrfs_inode *inode) btrfs_drew_write_unlock(&inode->root->snapshot_lock); } -static void update_time_for_write(struct inode *inode) -{ - struct timespec64 now, ts; - - if (IS_NOCMTIME(inode)) - return; - - now = current_time(inode); - ts = inode_get_mtime(inode); - if (!timespec64_equal(&ts, &now)) - inode_set_mtime_to_ts(inode, now); - - ts = inode_get_ctime(inode); - if (!timespec64_equal(&ts, &now)) - inode_set_ctime_to_ts(inode, now); - - if (IS_I_VERSION(inode)) - inode_inc_iversion(inode); -} - static int btrfs_write_check(struct kiocb *iocb, struct iov_iter *from, size_t count) { @@ -1171,7 +1151,10 @@ static int btrfs_write_check(struct kiocb *iocb, struct iov_iter *from, * need to start yet another transaction to update the inode as we will * update the inode when we finish writing whatever data we write. */ - update_time_for_write(inode); + if (!IS_NOCMTIME(inode)) { + inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); + inode_inc_iversion(inode); + } start_pos = round_down(pos, fs_info->sectorsize); oldsize = i_size_read(inode); diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index f05cce7c8b8d..1cd50293b98d 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -2173,7 +2173,8 @@ static struct file_system_type btrfs_fs_type = { .init_fs_context = btrfs_init_fs_context, .parameters = btrfs_fs_parameters, .kill_sb = btrfs_kill_super, - .fs_flags = FS_REQUIRES_DEV | FS_BINARY_MOUNTDATA | FS_ALLOW_IDMAP, + .fs_flags = FS_REQUIRES_DEV | FS_BINARY_MOUNTDATA | + FS_ALLOW_IDMAP | FS_MGTIME, }; MODULE_ALIAS_FS("btrfs"); -- 2.45.2