From patchwork Mon May 11 12:13:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236002 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=tARKajdo; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=abZOR4eh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=pfn+NSiz; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=W6ME8mjy; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=150.107.74.76; helo=mail.ozlabs.org; envelope-from=srs0=hbrj=di=vger.kernel.org=linux-ext4+bounces-16424-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf3d6LQWz1yHx for ; Mon, 11 May 2026 22:21:49 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf3d5tZZz4w1c for ; Mon, 11 May 2026 22:21:49 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf3d5llRz4wB9; Mon, 11 May 2026 22:21:49 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502109; cv=pass; b=GfwoDZBsyJmUrlLVkNcIwpF2h7zSP8jiS3gBk2lSsuhAfl2Qp6uRH6ImKyJiSCjzi5X+akI2kam9JSs4UemVSSlj5qoajZlSQvcDw2M9t+NOdZJ/o1muCy8o7Jwgc/R0633Hl+KAtzIndQXLGKmXashv/s1KzVVZxcvHRfA7E+15QsDXpU1bK/oH5yc0I0oeQ3fzWBejnqnc2wGrx7fQxSP29d9dM3gwemq8kyTqSyzJU7uO6Ctk8eJdMVYkqsY4G60WH/7uiRXXeGegOHolJBY6qBN+AI0BhCURZ39xlMTf/kr/sab5YMCB5PAr/IO2Xa1ObDkTxU797Ymp7E2TZg== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502109; c=relaxed/relaxed; bh=eyoLD5JlR1FunCKl7IKc6XsE1wJvmQCeJzuyWj8TBwo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=x0RDA7v+Uu5yU3JGzZYYDX6Zng13qqgudRXwW7fsoeyO2YEHiA6PZxRPFrDzXgnogqz1KKLSs70Hvoz3CIGJ6JaNb4BO3ZFwZ3Sj3JPDFyLqvFY2dEwSj3AECSts9OzJ+aXCm94gRCWPkBUxnScXokdZJ+prRqPmZIOqbPP/1tUCxwi2c7e+N5iD710j5MOQu6uLQJHDbppLu3Tt7qvsp5hIf3PJKKSFOw54VxZS6VDkSlt2VfuigGdutDkWtjLER0sWN3iPmt1/ncxRXLI9Vj8FLraMUNh8Drc+4X9JCUmnIonxEwgnf3KXm0PnrDW76HjfDORt7qfT0MEXXg5neQ== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=tARKajdo; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=abZOR4eh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=pfn+NSiz; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=W6ME8mjy; dkim-atps=neutral; spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16424-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=tARKajdo; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=abZOR4eh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=pfn+NSiz; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=W6ME8mjy; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16424-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf3Z37PDz4w1c for ; Mon, 11 May 2026 22:21:46 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 89980308D14C for ; Mon, 11 May 2026 12:14:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B16FA37E2E1; Mon, 11 May 2026 12:14:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="tARKajdo"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="abZOR4eh"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="pfn+NSiz"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="W6ME8mjy" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7E4437997E for ; Mon, 11 May 2026 12:14:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501659; cv=none; b=r68zLPrhe6OxpOoxsHxyVc+05KyAgPAZEtJ4yW/XVQxrL3E8DqhUX1DtHRCqYNcmXSMI//M0RbaJQ4bo8d1TqLAilgjv2XcZ3t0D8Xa8qdB//D/nJhFTXl1YrB8cY52b/0nC/KrmQaROzWMwkYVrnd7WYxDuPVawqgxNqfE4b/U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501659; c=relaxed/simple; bh=CW5qgLg2xeU7DpYzpWSL2tPRZZYuetyQO7XKNfUL1R8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PxWa4RoY1rQHsVWviuHXONjmMwMaSUSUFIlDwnLLT13WwxkfAEwbkBChyflCdPgxyWTJ6eXej9vtmAW+JJyT04gerCKbD5S8L/ktVE/fV2pC8pPoI0ZtqZwdqe3QMuzCWr554C0eYoW63s+Bkfj/dO12Waw/U/EoFCXQ9OJYciE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=tARKajdo; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=abZOR4eh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=pfn+NSiz; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=W6ME8mjy; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id EABC65C857; Mon, 11 May 2026 12:14:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eyoLD5JlR1FunCKl7IKc6XsE1wJvmQCeJzuyWj8TBwo=; b=tARKajdoCpaH2OjEacWVc1WMaQCy7lIGiGer/deZ8paJOrJztvPXkih1cM/sCM28kA5DrC 8kZkGDq3Of3yWBcgMD24oxeut+BD7jfZEM7wOk/kXp2F9rbsRn4VzIoFyeaq0kDaBdg+zH A4ubilzdx+rVijdGhJUwIWlPM8I7/L0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eyoLD5JlR1FunCKl7IKc6XsE1wJvmQCeJzuyWj8TBwo=; b=abZOR4ehSQK7iGy+6uGwMspt9+1zjSlbpV+qEfs6MbglvhLP56MlgN2Ao5xxgAiCoFJGOs 636BkVd6DxnbrZBg== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501650; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eyoLD5JlR1FunCKl7IKc6XsE1wJvmQCeJzuyWj8TBwo=; b=pfn+NSizXXo1LcYCZC9/Qr+Pg/jimWKmM6gRF6TLXIOFajiYMnIZWz4x6Ci8zKl5YMCSPh xZokeyh50HT+a2hd7QZBaQzPrmEXkS50mwRrVRlkU8OAkkTyHbfTj2F9zUA+F4Eyf9ldqf lb10qoCr222o1coD/ifuFdIEPRuk7XA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501650; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eyoLD5JlR1FunCKl7IKc6XsE1wJvmQCeJzuyWj8TBwo=; b=W6ME8mjyAXHRmd+94y0+1nlW/DIJxtia1hDLgrsEPnofZveUZH5PAk08NPeGfPROGJBN1C ri1MF+6xIL65G1CQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D81E5593A9; Mon, 11 May 2026 12:14:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id KQfCNBLIAWrJWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:10 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 6EF80A0791; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara , David Sterba Subject: [PATCH 1/9] affs: Drop support for metadata bh tracking Date: Mon, 11 May 2026 14:13:51 +0200 Message-ID: <20260511121356.241821-10-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=10556; i=jack@suse.cz; h=from:subject; bh=CW5qgLg2xeU7DpYzpWSL2tPRZZYuetyQO7XKNfUL1R8=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgEsbsjqx5KjsaIbk3DLuhx/mWVNalSqFxiW ruBHMbPn/eJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHIBAAKCRCcnaoHP2RA 2SVjCAC0o8bGGWMQriIJIzjWsOUahTfE5/qaXCNZfT4rS9QNxjYKmyuLDVAeeKEbjDXUUzxkY6u kKWQLtaIIYwNw1dBqsGWQqy1clC513hdc6Jd/n86w4BH1fzycnUCIpiIvLuoAwA26VSIZRoT1cc f3kAiz1Lp+4CGc83cUCKPX5jMJfZyUzpy8EE4Ah2ZHee74l1IkNCF0Y3HyFDosGjxrmqcHTxDC4 aQrcAaUmrMV32DigLQKczzsGfAf5xK6J5My2zK2kBWgxedGVZxndp9jygckxd2MmiaVWsjex2e+ if5MT0d3qKpirktSa664wGyXz6PapPGaJsVzUHMPOCHVRyx+ X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Score: -1.30 X-Spamd-Result: default: False [-1.30 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-0.999]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_SEVEN(0.00)[8]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz,suse.com]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.cz:email,suse.cz:mid,imap1.dmz-prg2.suse.org:helo]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org AFFS did all the hard work of tracking metadata bhs dirtied for an inode but it actually never used this information as affs_file_fsync() just calls sync_blockdev() to writeback all filesystem metadata bhs. After a discussion with AFFS maintainer nobody cares about AFFS performance so let's keep this affs_file_fsync() behavior and just drop all the pointless tracking from AFFS. CC: David Sterba Signed-off-by: Jan Kara --- fs/affs/affs.h | 1 - fs/affs/amigaffs.c | 12 ++++++------ fs/affs/file.c | 25 +++++++++++-------------- fs/affs/inode.c | 13 +++++-------- fs/affs/namei.c | 9 ++++----- fs/affs/super.c | 1 - 6 files changed, 26 insertions(+), 35 deletions(-) diff --git a/fs/affs/affs.h b/fs/affs/affs.h index a0caf6ace860..406a0ef63e7b 100644 --- a/fs/affs/affs.h +++ b/fs/affs/affs.h @@ -44,7 +44,6 @@ struct affs_inode_info { struct mutex i_link_lock; /* Protects internal inode access. */ struct mutex i_ext_lock; /* Protects internal inode access. */ #define i_hash_lock i_ext_lock - struct mapping_metadata_bhs i_metadata_bhs; u32 i_blkcnt; /* block count */ u32 i_extcnt; /* extended block count */ u32 *i_lc; /* linear cache of extended blocks */ diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c index bed4fc805e8e..6cc0fc9a4cbf 100644 --- a/fs/affs/amigaffs.c +++ b/fs/affs/amigaffs.c @@ -57,7 +57,7 @@ affs_insert_hash(struct inode *dir, struct buffer_head *bh) AFFS_TAIL(sb, dir_bh)->hash_chain = cpu_to_be32(ino); affs_adjust_checksum(dir_bh, ino); - mmb_mark_buffer_dirty(dir_bh, &AFFS_I(dir)->i_metadata_bhs); + mark_buffer_dirty(dir_bh); affs_brelse(dir_bh); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); @@ -100,7 +100,7 @@ affs_remove_hash(struct inode *dir, struct buffer_head *rem_bh) else AFFS_TAIL(sb, bh)->hash_chain = ino; affs_adjust_checksum(bh, be32_to_cpu(ino) - hash_ino); - mmb_mark_buffer_dirty(bh, &AFFS_I(dir)->i_metadata_bhs); + mark_buffer_dirty(bh); AFFS_TAIL(sb, rem_bh)->parent = 0; retval = 0; break; @@ -180,7 +180,7 @@ affs_remove_link(struct dentry *dentry) affs_unlock_dir(dir); goto done; } - mmb_mark_buffer_dirty(link_bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(link_bh); memcpy(AFFS_TAIL(sb, bh)->name, AFFS_TAIL(sb, link_bh)->name, 32); retval = affs_insert_hash(dir, bh); @@ -188,7 +188,7 @@ affs_remove_link(struct dentry *dentry) affs_unlock_dir(dir); goto done; } - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_unlock_dir(dir); iput(dir); @@ -203,7 +203,7 @@ affs_remove_link(struct dentry *dentry) __be32 ino2 = AFFS_TAIL(sb, link_bh)->link_chain; AFFS_TAIL(sb, bh)->link_chain = ino2; affs_adjust_checksum(bh, be32_to_cpu(ino2) - link_ino); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); retval = 0; /* Fix the link count, if bh is a normal header block without links */ switch (be32_to_cpu(AFFS_TAIL(sb, bh)->stype)) { @@ -306,7 +306,7 @@ affs_remove_header(struct dentry *dentry) retval = affs_remove_hash(dir, bh); if (retval) goto done_unlock; - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_unlock_dir(dir); diff --git a/fs/affs/file.c b/fs/affs/file.c index 144b17482d12..23e088a7ed4f 100644 --- a/fs/affs/file.c +++ b/fs/affs/file.c @@ -140,14 +140,14 @@ affs_alloc_extblock(struct inode *inode, struct buffer_head *bh, u32 ext) AFFS_TAIL(sb, new_bh)->parent = cpu_to_be32(inode->i_ino); affs_fix_checksum(sb, new_bh); - mmb_mark_buffer_dirty(new_bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(new_bh); tmp = be32_to_cpu(AFFS_TAIL(sb, bh)->extension); if (tmp) affs_warning(sb, "alloc_ext", "previous extension set (%x)", tmp); AFFS_TAIL(sb, bh)->extension = cpu_to_be32(blocknr); affs_adjust_checksum(bh, blocknr - tmp); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); AFFS_I(inode)->i_extcnt++; mark_inode_dirty(inode); @@ -581,7 +581,7 @@ affs_extent_file_ofs(struct inode *inode, u32 newsize) memset(AFFS_DATA(bh) + boff, 0, tmp); be32_add_cpu(&AFFS_DATA_HEAD(bh)->size, tmp); affs_fix_checksum(sb, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); size += tmp; bidx++; } else if (bidx) { @@ -603,7 +603,7 @@ affs_extent_file_ofs(struct inode *inode, u32 newsize) AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp); affs_fix_checksum(sb, bh); bh->b_state &= ~(1UL << BH_New); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); if (prev_bh) { u32 tmp_next = be32_to_cpu(AFFS_DATA_HEAD(prev_bh)->next); @@ -613,8 +613,7 @@ affs_extent_file_ofs(struct inode *inode, u32 newsize) bidx, tmp_next); AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr); affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next); - mmb_mark_buffer_dirty(prev_bh, - &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(prev_bh); affs_brelse(prev_bh); } size += bsize; @@ -733,7 +732,7 @@ static int affs_write_end_ofs(const struct kiocb *iocb, AFFS_DATA_HEAD(bh)->size = cpu_to_be32( max(boff + tmp, be32_to_cpu(AFFS_DATA_HEAD(bh)->size))); affs_fix_checksum(sb, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); written += tmp; from += tmp; bidx++; @@ -766,13 +765,12 @@ static int affs_write_end_ofs(const struct kiocb *iocb, bidx, tmp_next); AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr); affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next); - mmb_mark_buffer_dirty(prev_bh, - &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(prev_bh); } } affs_brelse(prev_bh); affs_fix_checksum(sb, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); written += bsize; from += bsize; bidx++; @@ -801,14 +799,13 @@ static int affs_write_end_ofs(const struct kiocb *iocb, bidx, tmp_next); AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr); affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next); - mmb_mark_buffer_dirty(prev_bh, - &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(prev_bh); } } else if (be32_to_cpu(AFFS_DATA_HEAD(bh)->size) < tmp) AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp); affs_brelse(prev_bh); affs_fix_checksum(sb, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); written += tmp; from += tmp; bidx++; @@ -945,7 +942,7 @@ affs_truncate(struct inode *inode) } AFFS_TAIL(sb, ext_bh)->extension = 0; affs_fix_checksum(sb, ext_bh); - mmb_mark_buffer_dirty(ext_bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(ext_bh); affs_brelse(ext_bh); if (inode->i_size) { diff --git a/fs/affs/inode.c b/fs/affs/inode.c index 5dd1b016bcb0..d4a3f381c4bc 100644 --- a/fs/affs/inode.c +++ b/fs/affs/inode.c @@ -206,7 +206,7 @@ affs_write_inode(struct inode *inode, struct writeback_control *wbc) } } affs_fix_checksum(sb, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_brelse(bh); affs_free_prealloc(inode); return 0; @@ -266,11 +266,8 @@ affs_evict_inode(struct inode *inode) if (!inode->i_nlink) { inode->i_size = 0; affs_truncate(inode); - } else { - mmb_sync(&AFFS_I(inode)->i_metadata_bhs); } - mmb_invalidate(&AFFS_I(inode)->i_metadata_bhs); clear_inode(inode); affs_free_prealloc(inode); cache_page = (unsigned long)AFFS_I(inode)->i_lc; @@ -305,7 +302,7 @@ affs_new_inode(struct inode *dir) bh = affs_getzeroblk(sb, block); if (!bh) goto err_bh; - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_brelse(bh); inode->i_uid = current_fsuid(); @@ -393,17 +390,17 @@ affs_add_entry(struct inode *dir, struct inode *inode, struct dentry *dentry, s3 AFFS_TAIL(sb, bh)->link_chain = chain; AFFS_TAIL(sb, inode_bh)->link_chain = cpu_to_be32(block); affs_adjust_checksum(inode_bh, block - be32_to_cpu(chain)); - mmb_mark_buffer_dirty(inode_bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(inode_bh); set_nlink(inode, 2); ihold(inode); } affs_fix_checksum(sb, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); dentry->d_fsdata = (void *)(long)bh->b_blocknr; affs_lock_dir(dir); retval = affs_insert_hash(dir, bh); - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_unlock_dir(dir); affs_unlock_link(inode); diff --git a/fs/affs/namei.c b/fs/affs/namei.c index c3c6532da4b0..57d8d755aada 100644 --- a/fs/affs/namei.c +++ b/fs/affs/namei.c @@ -373,7 +373,7 @@ affs_symlink(struct mnt_idmap *idmap, struct inode *dir, } *p = 0; inode->i_size = i + 1; - mmb_mark_buffer_dirty(bh, &AFFS_I(inode)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_brelse(bh); mark_inode_dirty(inode); @@ -443,8 +443,7 @@ affs_rename(struct inode *old_dir, struct dentry *old_dentry, /* TODO: move it back to old_dir, if error? */ done: - mmb_mark_buffer_dirty(bh, - &AFFS_I(retval ? old_dir : new_dir)->i_metadata_bhs); + mark_buffer_dirty(bh); affs_brelse(bh); return retval; } @@ -497,8 +496,8 @@ affs_xrename(struct inode *old_dir, struct dentry *old_dentry, retval = affs_insert_hash(old_dir, bh_new); affs_unlock_dir(old_dir); done: - mmb_mark_buffer_dirty(bh_old, &AFFS_I(new_dir)->i_metadata_bhs); - mmb_mark_buffer_dirty(bh_new, &AFFS_I(old_dir)->i_metadata_bhs); + mark_buffer_dirty(bh_old); + mark_buffer_dirty(bh_new); affs_brelse(bh_old); affs_brelse(bh_new); return retval; diff --git a/fs/affs/super.c b/fs/affs/super.c index 079f36e1ddec..8451647f3fea 100644 --- a/fs/affs/super.c +++ b/fs/affs/super.c @@ -108,7 +108,6 @@ static struct inode *affs_alloc_inode(struct super_block *sb) i->i_lc = NULL; i->i_ext_bh = NULL; i->i_pa_cnt = 0; - mmb_init(&i->i_metadata_bhs, &i->vfs_inode.i_data); return &i->vfs_inode; } From patchwork Mon May 11 12:13:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236001 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=lgrvfjmm; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=mqDVd82E; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=aZWW7fFV; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uAaxeGpE; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org; envelope-from=srs0=rabd=di=vger.kernel.org=linux-ext4+bounces-16426-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf3N5hJpz1yHx for ; Mon, 11 May 2026 22:21:36 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf3N5FZRz4w1c for ; Mon, 11 May 2026 22:21:36 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf3N57N4z4wB9; Mon, 11 May 2026 22:21:36 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.105.105.114 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502096; cv=pass; b=qOe0as1sp0C+2XLmQ2nZPM1jmOGIxcucrDaz0HWhT9UZZKhUrhKYSQBYFf2XD7Z1HqOFTq6/GbUVRoQ/1oCWOwAusf4viUpNRsAu7b17mlZ2jAz02eFc5Gjy5PZROAxsByuMapG5iS5KchgS5EYLXe1JgK3GIOK8n38nPnP5GFAvgjkKd0iFMK7LLwag+K1mhIa1Pu24t2kImAmwZShZ6ofvahMRXtY66ioarxGlnBZFmA6sR3/MI5l9vE4AfeHUYqF+HgiRqw9tRU1TNidhABe/aILDfsRgPYD7/8lRNBTpbnCWrTbF6rP8FNIhdP92ePsoiHqGouZJHxwXTSDHng== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502096; c=relaxed/relaxed; bh=t+cZ4JZ7sAlSn+m8mIX5c82uUqoNdVkPMlAgPrOjnNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cSXUU4ntaS5sgIoAGJVaqKp+H7mGin14bQvmyoRyKjGdAWDSNeb0WG9JHqnvw+CIlRU0XKxolGOVUOvvqBD8TkY1DtYlhpac7P0zNTi0EKmxXETrnEwV7Rxg0sskfslpTjX/jE/jMEchdjnRBitmTMbY4jhrZRBVIlUXUnKkuiklgQt2JzwMG4NwdKGbvIiwPgANYTC8FAPytjwAkPQGSroqU1hBncdKf1IpPqiGSdAlTBsCESPQr222CLqeqW177w5cPCK1nf0w1MChxJIr4Qwi1nJAEQE8faLjaE/VLHC/PGXpdLgLkCf3AsNXsVL4EMsG5s4U/YyU7f9DJII0zw== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=lgrvfjmm; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=mqDVd82E; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=aZWW7fFV; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uAaxeGpE; dkim-atps=neutral; spf=pass (client-ip=172.105.105.114; helo=tor.lore.kernel.org; envelope-from=linux-ext4+bounces-16426-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=lgrvfjmm; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=mqDVd82E; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=aZWW7fFV; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uAaxeGpE; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.105.105.114; helo=tor.lore.kernel.org; envelope-from=linux-ext4+bounces-16426-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf3K1sszz4w1c for ; Mon, 11 May 2026 22:21:33 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id 8357430BB718 for ; Mon, 11 May 2026 12:14:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4CADF37B01C; Mon, 11 May 2026 12:14:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="lgrvfjmm"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="mqDVd82E"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="aZWW7fFV"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="uAaxeGpE" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7192E371049 for ; Mon, 11 May 2026 12:14:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501671; cv=none; b=By4D9pzIWMv6R73+BBHgdJ0CoDAIacH/ZomBGeG/X/1VVu7uddTGN3h2yNTJ0fYzRREbiU0nbcIlUnxDrC42NQpcqQdNiSZmHftHfVa7xlChsn52To00hcP6tEmFRoUJmeelNwDuKU5hZ9rOiPLsb9qazEp+2bEvEseIfZJ2s5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501671; c=relaxed/simple; bh=TdtjI3mhs/tf9ochvmYUHBpaLHBLyJSR4kkqvZeKDAQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HLW+0b6xyynRiIdyClaUOMVdKSxoX//7P1Kk5bqey9zHYdhc+CB+5KdkLREEK2RlpSFnAWFtX+tA1xixGYGhJGpZ8XpASFcKAZLq96ClE85WUqQ0IWFRLLyCdPrVpWJRDwlHTFNIf02PDcn0yB2Ls/Ts4rxpG2F4Ho7MvorZzlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=lgrvfjmm; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=mqDVd82E; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=aZWW7fFV; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=uAaxeGpE; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1BB5C5CEF2; Mon, 11 May 2026 12:14:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t+cZ4JZ7sAlSn+m8mIX5c82uUqoNdVkPMlAgPrOjnNM=; b=lgrvfjmmhitDBAItv5F+9a+8CauM2NFPdT4Bw0lTqykHU++1xXNEMgMTXX7tsfuGgULH2P GFD+Mkyce0UL1QsykLsJeOFvDcXFUGPFb36+0jffYY+ygASYA41F7EG/2Y10ZsZkwsETGu 5dG+HQtYN9o8GRlSMc3IKiJ61QLVA3o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t+cZ4JZ7sAlSn+m8mIX5c82uUqoNdVkPMlAgPrOjnNM=; b=mqDVd82Eb53brDxtXA7Rl54f4pxnPYdJJiqjOwA3rydD+xSNBGv9M4/GydDMUH5oB+EVxT JVERRbxQVyFKx/CQ== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=aZWW7fFV; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=uAaxeGpE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t+cZ4JZ7sAlSn+m8mIX5c82uUqoNdVkPMlAgPrOjnNM=; b=aZWW7fFVHrluKIDRQnvVaY4ScyWW4Kfo1ci7cPh4OP0dJKaNuIYE52zqVjjYljMOUkoCwr ED98rA73iYI4OAhVKCo1FUPwYhycsk0ax+DR87jjZNUsJLLJWYah19AKGsecJed6BiSDrI AOGtZHwudh3L2QI+HVgtaoytRAnVz+8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t+cZ4JZ7sAlSn+m8mIX5c82uUqoNdVkPMlAgPrOjnNM=; b=uAaxeGpEFQCi2jEO8iU7X2ru19rEuF/T+N3Y4YjGCERoLmszdaIsIKsU/WcA2XRP5CNfgP iM661fEuWoB0NtDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0252B593AA; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id JKaOABPIAWrMWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 75473A07A0; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 2/9] ext4: Allocate mapping_metadata_bhs struct on demand Date: Mon, 11 May 2026 14:13:52 +0200 Message-ID: <20260511121356.241821-11-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5683; i=jack@suse.cz; h=from:subject; bh=TdtjI3mhs/tf9ochvmYUHBpaLHBLyJSR4kkqvZeKDAQ=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgFIEzKPdAvHNuTkNeb/aGQ59nl8Ign7J0SF asz056TH/6JATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHIBQAKCRCcnaoHP2RA 2fBLB/4ljaWSCPdDWKcwyxICDojxg9P6c/MVoG82LRQlH40NqB2VZSZ7Y0z3rzC8JCWO9RgGYJn oop6aSEGSuPYAxKmp8f6eSbnpZWtrvjRQukIBjMYcUaBMGmgqOKZg2rQY3W769v125NhqAb6ExF 2I0CmYsM2qHTpEpxS6oxeYEFNGRD9a89wknQEdhPG+OBekoYowHOPZ6kNYTxsZA+WPbpwawL3fo n/UmeZQIsg2wNf5FHgkn0JNZr9FdGrhEAyzdzsmtqByybd9klKDgVNrK5JlRYmj9FX1Vto2dirX B+9860mFGr/wqJuoF/ERjMCYQaKBMJ9bLppvgFlFGEdUrLvl X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Level: X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; RCVD_TLS_LAST(0.00)[]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received]; ARC_NA(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.cz:dkim,suse.cz:email,suse.cz:mid]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Queue-Id: 1BB5C5CEF2 X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spam-Score: -1.51 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Currently every ext4 inode gets mapping_metadata_bhs struct although it is only needed when running without a journal and only for inodes where any metadata was dirtied. Allocate mapping_metadata_bhs struct on demand when dirtying the first metadata buffer for the inode. Signed-off-by: Jan Kara --- fs/ext4/ext4.h | 2 +- fs/ext4/ext4_jbd2.c | 24 +++++++++++++++++++++--- fs/ext4/fsync.c | 12 ++++++++---- fs/ext4/inode.c | 9 +++++---- fs/ext4/super.c | 8 +++++--- 5 files changed, 40 insertions(+), 15 deletions(-) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 94283a991e5c..6bb29a20420f 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1117,7 +1117,7 @@ struct ext4_inode_info { struct rw_semaphore i_data_sem; struct inode vfs_inode; struct jbd2_inode *jinode; - struct mapping_metadata_bhs i_metadata_bhs; + struct mapping_metadata_bhs *i_metadata_bhs; /* * File creation time. Its function is same as that of diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c index 9a8c225f2753..74f05bd0cdde 100644 --- a/fs/ext4/ext4_jbd2.c +++ b/fs/ext4/ext4_jbd2.c @@ -350,6 +350,21 @@ int __ext4_journal_get_create_access(const char *where, unsigned int line, return 0; } +static void ext4_inode_attach_mmb(struct inode *inode) +{ + struct mapping_metadata_bhs *mmb; + + /* + * It's difficult to handle failure when marking buffer dirty without + * leaving filesystem corrupyted + */ + mmb = kmalloc_obj(*mmb, GFP_KERNEL | __GFP_NOFAIL); + mmb_init(mmb, inode->i_mapping); + /* Someone swapped another mmb before us? */ + if (cmpxchg(&EXT4_I(inode)->i_metadata_bhs, NULL, mmb)) + kfree(mmb); +} + int __ext4_handle_dirty_metadata(const char *where, unsigned int line, handle_t *handle, struct inode *inode, struct buffer_head *bh) @@ -389,11 +404,14 @@ int __ext4_handle_dirty_metadata(const char *where, unsigned int line, err); } } else { - if (inode) + if (inode) { + if (!EXT4_I(inode)->i_metadata_bhs) + ext4_inode_attach_mmb(inode); mmb_mark_buffer_dirty(bh, - &EXT4_I(inode)->i_metadata_bhs); - else + EXT4_I(inode)->i_metadata_bhs); + } else { mark_buffer_dirty(bh); + } if (inode && inode_needs_sync(inode)) { sync_dirty_buffer(bh); if (buffer_req(bh) && !buffer_uptodate(bh)) { diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c index 924726dcc85f..e25d365e1179 100644 --- a/fs/ext4/fsync.c +++ b/fs/ext4/fsync.c @@ -46,6 +46,7 @@ static int ext4_sync_parent(struct inode *inode) { struct dentry *dentry, *next; + struct mapping_metadata_bhs *mmb; int ret = 0; if (!ext4_test_inode_state(inode, EXT4_STATE_NEWENTRY)) @@ -68,9 +69,12 @@ static int ext4_sync_parent(struct inode *inode) * through ext4_evict_inode()) and so we are safe to flush * metadata blocks and the inode. */ - ret = mmb_sync(&EXT4_I(inode)->i_metadata_bhs); - if (ret) - break; + mmb = READ_ONCE(EXT4_I(inode)->i_metadata_bhs); + if (mmb) { + ret = mmb_sync(mmb); + if (ret) + break; + } ret = sync_inode_metadata(inode, 1); if (ret) break; @@ -89,7 +93,7 @@ static int ext4_fsync_nojournal(struct file *file, loff_t start, loff_t end, }; int ret; - ret = mmb_fsync_noflush(file, &EXT4_I(inode)->i_metadata_bhs, + ret = mmb_fsync_noflush(file, EXT4_I(inode)->i_metadata_bhs, start, end, datasync); if (ret) return ret; diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index c2c2d6ac7f3d..3e66e9510909 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -195,9 +195,8 @@ void ext4_evict_inode(struct inode *inode) ext4_warning_inode(inode, "data will be lost"); truncate_inode_pages_final(&inode->i_data); - /* Avoid mballoc special inode which has no proper iops */ - if (!EXT4_SB(inode->i_sb)->s_journal) - mmb_sync(&EXT4_I(inode)->i_metadata_bhs); + if (EXT4_I(inode)->i_metadata_bhs) + mmb_sync(EXT4_I(inode)->i_metadata_bhs); goto no_delete; } @@ -3451,6 +3450,7 @@ static bool ext4_release_folio(struct folio *folio, gfp_t wait) static bool ext4_inode_datasync_dirty(struct inode *inode) { journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; + struct mapping_metadata_bhs *mmb; if (journal) { if (jbd2_transaction_committed(journal, @@ -3461,8 +3461,9 @@ static bool ext4_inode_datasync_dirty(struct inode *inode) return true; } + mmb = READ_ONCE(EXT4_I(inode)->i_metadata_bhs); /* Any metadata buffers to write? */ - if (mmb_has_buffers(&EXT4_I(inode)->i_metadata_bhs)) + if (mmb && mmb_has_buffers(mmb)) return true; return inode_state_read_once(inode) & I_DIRTY_DATASYNC; } diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 6a77db4d3124..92134ea4620c 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -1430,7 +1430,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb) INIT_WORK(&ei->i_rsv_conversion_work, ext4_end_io_rsv_work); ext4_fc_init_inode(&ei->vfs_inode); spin_lock_init(&ei->i_fc_lock); - mmb_init(&ei->i_metadata_bhs, &ei->vfs_inode.i_data); + ei->i_metadata_bhs = NULL; return &ei->vfs_inode; } @@ -1527,8 +1527,10 @@ static void destroy_inodecache(void) void ext4_clear_inode(struct inode *inode) { ext4_fc_del(inode); - if (!EXT4_SB(inode->i_sb)->s_journal) - mmb_invalidate(&EXT4_I(inode)->i_metadata_bhs); + if (EXT4_I(inode)->i_metadata_bhs) { + mmb_invalidate(EXT4_I(inode)->i_metadata_bhs); + kfree(EXT4_I(inode)->i_metadata_bhs); + } clear_inode(inode); ext4_discard_preallocations(inode); /* From patchwork Mon May 11 12:13:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236000 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=tGzIryaS; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+1hvAMt5; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=Fc99BxJf; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wGYmGLbY; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org; envelope-from=srs0=w1p+=di=vger.kernel.org=linux-ext4+bounces-16423-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf2G5mQkz1yHx for ; Mon, 11 May 2026 22:20:38 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf2G5ZQNz4wB9 for ; Mon, 11 May 2026 22:20:38 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf2G5VqSz4w1c; Mon, 11 May 2026 22:20:38 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.105.105.114 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502038; cv=pass; b=kQZOxkQs++GRVjrxN5aqVQ0a4zpIwjEDmPlnXpwOiFbKjW7rzF2uVUipYOlT2gLkOm4VnjrwCgYfa+BJ3QT61AmSPlXGZOERbmLktXH/+tqpUFglfTTZv9X2WCN40AEAIYZCIGo+ci6MN645ZUTtwFXE4pYLgx5BwkYzESmXKAZlcLQN36AZaSM6OPftoC5ANqtEWVrlE60kCyTyIrocLDBq2tBGw14MPom0DQ/ZCTRB2SVVBWL55G+Px1F/PyprT8c8YtBYeXPux4htiQj8EJVfLjHGtNz1WbP6kO7rUfLXKztNC7/1cL/heQuJWKgcqVGehxZ8gog3KHp4Tqs12w== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502038; c=relaxed/relaxed; bh=jzXMKEVfeYzqSmmmptCGF2i7bA/2c2b3/MuFHVCu7jM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eTSpTID6WuN2FuyRW4JAeM2kfhRQjZb4YigG3GngeJ2P2r7AvMHAZbhVe0QrQ4ft6HdRfKNW9Ou3p6rPWqwiW0ecZyTQMZ1C414810ZBe/KARKHxkT+NMZAtyNOsF6Je5NtXv/kGKs+IY+u++5TO8uOQ8sS7bx7iPZshL7LBGL1HHWCQ4W54zASiAAiwJF1Rtcas4Wm0aXhoZQFBTqdjlfp+XDQjNlj13ZpTboSAFWEeivWR7lTpZDObI6B+e6CrxTMtFXvb5U0p3oYLebc18haH1hNPiYeTuy9fjNhztEGd/T2duWNs2LHYHksqCv2giPpREkcS2hpnr3rhDpanVg== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=tGzIryaS; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+1hvAMt5; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=Fc99BxJf; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wGYmGLbY; dkim-atps=neutral; spf=pass (client-ip=172.105.105.114; helo=tor.lore.kernel.org; envelope-from=linux-ext4+bounces-16423-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=tGzIryaS; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+1hvAMt5; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=Fc99BxJf; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wGYmGLbY; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.105.105.114; helo=tor.lore.kernel.org; envelope-from=linux-ext4+bounces-16423-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf2C1gjmz4wB9 for ; Mon, 11 May 2026 22:20:35 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id 0F8413054FDB for ; Mon, 11 May 2026 12:14:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6DCFF3806D7; Mon, 11 May 2026 12:14:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="tGzIryaS"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="+1hvAMt5"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="Fc99BxJf"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="wGYmGLbY" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A665F3242B8 for ; Mon, 11 May 2026 12:14:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501658; cv=none; b=by+FOPO9rh5h7tQIVgTE+GDdsnkIY9LGbY/IlGxclbZx+y+tF67FswJmAmf0B67rHXJ18Zs8XG+B0QUT68E1nxxY2n8tkJSuC7yYLyG0hWoMMT6U2Z2grrIaZUH7GVciaNN2wiJYu1a5w/Lzo3BxTveuBT/ycB9o7UhJ8oYsVSQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501658; c=relaxed/simple; bh=pPonS2GQEY1W18D7zENkCxkKiUhJTOVSQ9ulStQUnOw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IXuFjK1Yv8E11JmqKlnFaBUGFmdYEGxDew2vJK7BiRx9y0AiGwQZhH7Wegz64ByzyiHYc16cm4GimcQbWdnjNXvQnHVQc+JHqDp40qalYET07RO1jWoDII9qdrdFbNt2eijFU5qP1uDr6TIm/fIqIEmN2kyz5CxEHgvTVuxWVZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=tGzIryaS; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=+1hvAMt5; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=Fc99BxJf; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=wGYmGLbY; arc=none smtp.client-ip=195.135.223.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 282AC6BAE7; Mon, 11 May 2026 12:14:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jzXMKEVfeYzqSmmmptCGF2i7bA/2c2b3/MuFHVCu7jM=; b=tGzIryaSg1oZbHWct+AkX9P6TPng+xATFfx8xsk7Hl69xtslDwYZ3kIgvJA4bPeUpDaGU8 XAKqPvbu8ej/LGChOMwstLHmaNOoXClhRxP0peRefUByUmTC69ky9K3YFjeFUKTFrnq9YG w6t4V+x5BeB7oQA4XsD2AAqFHFaBpm0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jzXMKEVfeYzqSmmmptCGF2i7bA/2c2b3/MuFHVCu7jM=; b=+1hvAMt5xoEUleBAINqR0IptXHRTdut/oACO7DCrsIQlVzZQSHLoiaPgJw35PYiPbgS5N1 62WDgbhO567/bJCg== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=Fc99BxJf; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=wGYmGLbY DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jzXMKEVfeYzqSmmmptCGF2i7bA/2c2b3/MuFHVCu7jM=; b=Fc99BxJfUIqiQEQhx9zrILqRb6m7fwkhzIh+FgAERgbJPIuQC6RIFFjjlyO812dDfQqwQV BEKECOal4BADc4J/sClkox8Y5zvx+Rjamw3Nj6gZiHsn1r7GwXcW1gHstcuQNgMnmV1ryA LiMBJIt9KMWW85bOuxI8lgJdRiqI5V8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jzXMKEVfeYzqSmmmptCGF2i7bA/2c2b3/MuFHVCu7jM=; b=wGYmGLbYBErXwypP2zMxdWrmuxqe3Bj+rbFVDfQIgwfJ0aED7ibIL/JjZbrHlpev7Y1qCu 6kd02QSE4SqKWZCw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1A459593A3; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id OCxnBhPIAWrOWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 7A857A07A2; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 3/9] fs: Writeout inode buffer from mmb_sync() Date: Mon, 11 May 2026 14:13:53 +0200 Message-ID: <20260511121356.241821-12-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3462; i=jack@suse.cz; h=from:subject; bh=pPonS2GQEY1W18D7zENkCxkKiUhJTOVSQ9ulStQUnOw=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgFg+69z7actsiAWKqHH6ehZMA4xdwYXVfXH lJwjT5HLFaJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHIBQAKCRCcnaoHP2RA 2RBnCADB2Ie1CbIDgDtMGN46COqXgKqPQ5w5lDQyD3D1lfpUqrY2tCOZX2NQo2rY+Lz06zFKdUq 0fOPi9BQhE1P9ygIPcc2HqGxjkvij3ZOWIXBYNYFMQxMy42WQ5DCzT9HzJKOm+QvRmmyQZrORsV VCLWvIoKZI6YFwpFCSaTZGaIj8bI9r1I2aBlzYpRAWgfMEt4MKAUjOidAeHEGzYXimdNsuQBoxS KcDVXCenGXyVWlYWTRuCsVOVnd/eAN6STnogfn+t9ffGuGp9hpYUZK+9qDQTNxICfUqqYOWXd9M FZ9YiGDkdBPEDMLLS5tLoVB4SsWptDJCbdxBSP6FFkidFHm/ X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Score: -1.51 X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:email,suse.cz:dkim,suse.cz:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; R_RATELIMIT(0.00)[to_ip_from(RLhafujjw6m7bafrsz8p45s31g)]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Rspamd-Queue-Id: 282AC6BAE7 X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Currently metadata bh tracking does not track inode buffers because they are usually shared by several inodes and so our linked list tracking cannot be used. On fsync we call sync_inode_metadata() to write inode instead where filesystems' .write_inode methods detect data integrity writeback and take care to submit inode buffer to disk and wait for it in that case. This is however racy as for example flush worker can submit normal (WB_SYNC_NONE) inode writeback first, which makes the inode clean and copies the inode to the buffer but doesn't submit the buffer for IO. Thus sync_inode_metadata() call does nothing and we fail to persist inode buffer to disk on fsync(2). Fix the problem by allowing filesystem to set the number of block backing the inode in mmb structure and mmb_sync() then takes care to writeout corresponding buffer and wait for it. Signed-off-by: Jan Kara --- fs/buffer.c | 34 +++++++++++++++++++++++----------- include/linux/fs.h | 1 + 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index b0b3792b1496..dba29a45346b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -477,12 +477,14 @@ EXPORT_SYMBOL(mark_buffer_async_write); * using RCU, grab the lock, verify we didn't race with somebody detaching the * bh / moving it to different inode and only then proceeding. */ +#define INVALID_BLK (~0ULL) void mmb_init(struct mapping_metadata_bhs *mmb, struct address_space *mapping) { spin_lock_init(&mmb->lock); INIT_LIST_HEAD(&mmb->list); mmb->mapping = mapping; + mmb->inode_blk = INVALID_BLK; } EXPORT_SYMBOL(mmb_init); @@ -593,8 +595,18 @@ int mmb_sync(struct mapping_metadata_bhs *mmb) } } } - spin_unlock(&mmb->lock); + + /* Writeout inode buffer head */ + if (mmb->inode_blk != INVALID_BLK) { + bh = sb_find_get_block(mmb->mapping->host->i_sb, mmb->inode_blk); + write_dirty_buffer(bh, REQ_SYNC); + wait_on_buffer(bh); + if (!buffer_uptodate(bh)) + err = -EIO; + brelse(bh); + } + blk_finish_plug(&plug); spin_lock(&mmb->lock); @@ -646,18 +658,18 @@ int mmb_fsync_noflush(struct file *file, struct mapping_metadata_bhs *mmb, if (err) return err; - if (mmb) - ret = mmb_sync(mmb); if (!(inode_state_read_once(inode) & I_DIRTY_ALL)) - goto out; + goto sync_buffers; if (datasync && !(inode_state_read_once(inode) & I_DIRTY_DATASYNC)) - goto out; - - err = sync_inode_metadata(inode, 1); - if (ret == 0) - ret = err; - -out: + goto sync_buffers; + + ret = sync_inode_metadata(inode, 1); +sync_buffers: + if (mmb) { + err = mmb_sync(mmb); + if (ret == 0) + ret = err; + } /* check and advance again to catch errors after syncing out buffers */ err = file_check_and_advance_wb_err(file); if (ret == 0) diff --git a/include/linux/fs.h b/include/linux/fs.h index 11559c513dfb..435a41e4c90f 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -446,6 +446,7 @@ extern const struct address_space_operations empty_aops; /* Structure for tracking metadata buffer heads associated with the mapping */ struct mapping_metadata_bhs { struct address_space *mapping; /* Mapping bhs are associated with */ + sector_t inode_blk; /* Number of block containing the inode */ spinlock_t lock; /* Lock protecting bh list */ struct list_head list; /* The list of bhs (b_assoc_buffers) */ }; From patchwork Mon May 11 12:13:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236006 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=E4hY6hcy; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=u/QfyDmh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=VdsOJsMB; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=cAo2WxVv; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org; envelope-from=srs0=rvec=di=vger.kernel.org=linux-ext4+bounces-16427-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf7521WMz1yHx for ; Mon, 11 May 2026 22:24:49 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf751X9Tz4w1c for ; Mon, 11 May 2026 22:24:49 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf751TvHz4wB9; Mon, 11 May 2026 22:24:49 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip="2600:3c0a:e001:db::12fc:5321" arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502289; cv=pass; b=vde5Yk7UG8py7e/VzACfq+fw6FBh96FEo6Wjuvm57OijA7X4GMGTom2Ujbu1fdpPYeCERzfLzP/yozgK/WZx/T04ZrrReKbZi18RQAW63NZvs6uwdSNCgy6lxX5N/EtQqVAuhHWVPND0gG5NsTo5k2RWFZ2T83aPa+qECh6d1pZvJxfk0xy2/+liTWQUSYlawzB8kimgYDvIB5wk/NmxM7mYdJG09f0uFeFFbMhcgQjVE1zQyA1/boN2GZH4cQuHGUzBpnGWJWmKdsm51DoGphFondp9VTSowr/3SYgi4kFMS/OEIEEQQWLGHPuNFOVMS8pZ0ZZ8x1GaYsM3kEPISw== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502289; c=relaxed/relaxed; bh=QuFXtudYvkPmrHQz91zpeEUhQIbv58mxF1KjpLD9B8A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ecS/yrG4nviieRx4esfOv2Zs9ppn+6Ky763WIM40y1HeN/BHz4pps+2f9EFA/b7P5fH2+9rT/QSsUrZGqgGFg/iPPJwrDItqCPqKJ0UmECoN3lDTEX1I7HFevw/oDVqLvz1VpvB+y5UkQ6mkLLacgfi7zxXQKaCEy6jBLLoH/HlRmNXxIdA6zI6uO7DnX3idXflPycgRhF/LK55v6MVAAuqbgJkHgzvcjm7mr+89LghKJI3g/Qy0vGg/us/Gh/l2AYWCj2JTHcWGSSZQKQ+vsPZq3oPn8pArSZMtPlbckFvXLw8FrxMNOEILricL6iVoIGDw5ssTleJUUz6JUseLgQ== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=E4hY6hcy; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=u/QfyDmh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=VdsOJsMB; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=cAo2WxVv; dkim-atps=neutral; spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16427-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=E4hY6hcy; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=u/QfyDmh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=VdsOJsMB; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=cAo2WxVv; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16427-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from sea.lore.kernel.org (sea.lore.kernel.org [IPv6:2600:3c0a:e001:db::12fc:5321]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf714GyXz4w1c for ; Mon, 11 May 2026 22:24:45 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 03D3130D1B9E for ; Mon, 11 May 2026 12:14:38 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7DFF237BE87; Mon, 11 May 2026 12:14:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="E4hY6hcy"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="u/QfyDmh"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="VdsOJsMB"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="cAo2WxVv" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 166253242B8 for ; Mon, 11 May 2026 12:14:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501677; cv=none; b=TUHD9RDTyBY0QG8OTF2vm6MHESnVH5SlpzkECC2TE4L5vcEdmlB/N/fXszA0S6yTvIGBOIjddDiONCNdY54UYCZNUP4qJCswqMvVlEOzDDMyEl7B2S44DLAC+7UcvfUXe4paJ49S+leIp95hEJdN+TiMd3Oisv/YoeZsiNsu2H4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501677; c=relaxed/simple; bh=8MKQjFaZrU677ZpwRUhbtFfgfHQ41cBxwUdUOWg2JqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y/gNRnX4DK8ytxcqSYTZTKa97FVd6JVv7WS/trPI7i6WIQ2PuMUzVZVNMEh/9Kru0DYSnbZusRKdQCfePatyv4vIfGzdePecKWChIE7JgXyn3kLQMjGfFgtQb3QCFVh2IT6Hq8qERNKrsqteWcIv1I96sI5RLVrgl6JDrjJ9UT4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=E4hY6hcy; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=u/QfyDmh; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=VdsOJsMB; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=cAo2WxVv; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 3619567F15; Mon, 11 May 2026 12:14:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QuFXtudYvkPmrHQz91zpeEUhQIbv58mxF1KjpLD9B8A=; b=E4hY6hcyoLrDfk4HH2kGnK/xdOf77V7ZT1wfKX6TYf68PJl2LnBmjGCAPRiA+8vYxnhmVF fZtslLcIYT7/EFhczut771KY2BQJRdoKMe0L6ZSRBxBNWLCc5BImBAyGVoHiVzMYLRxd4/ xA8ADP3XlK45fff3QIht0qkIY4IMyMA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QuFXtudYvkPmrHQz91zpeEUhQIbv58mxF1KjpLD9B8A=; b=u/QfyDmhBJ04zhQjoMVEwQxAFylEz7GBSY11A/n763SEa/1DXlPT4JN7DQy/2+b/TGs+SF sDmJH8G7hP/+KBBw== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=VdsOJsMB; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=cAo2WxVv DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QuFXtudYvkPmrHQz91zpeEUhQIbv58mxF1KjpLD9B8A=; b=VdsOJsMBBKDXc3pTe+VKlTfYqBlBaK1ZFr9ImbhzZ6WBKeL8BJW2+u/XkVb0SAdZ1NnD9x Mb4z/6nYPhA094lb1V5raWwF08b9WJQBxaOI5JK7nXmFvNYKkctYi70+xFDGVbTZwC/SYb aJApeRKOYkHbJGpcPB6qLxaEdpgluSI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QuFXtudYvkPmrHQz91zpeEUhQIbv58mxF1KjpLD9B8A=; b=cAo2WxVvyzVueUfrLC0udtapBKeMilFK3SLxf0jneOyqumIKt+tSpBYR9DHENBJ2R48k+7 Ggs0NN7i1zgW9DAA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 24E89593AB; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 4XwFCRPIAWrTWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 80005A08F7; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 4/9] ext2: Fix possibly missing inode write on fsync(2) Date: Mon, 11 May 2026 14:13:54 +0200 Message-ID: <20260511121356.241821-13-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1079; i=jack@suse.cz; h=from:subject; bh=8MKQjFaZrU677ZpwRUhbtFfgfHQ41cBxwUdUOWg2JqU=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgGJmTwTnJPTV0qy+aeIPy0RrYy1Yf4rsNel IRLIboUZueJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHIBgAKCRCcnaoHP2RA 2b9cB/9NmBeDuuRew6nHZAVvz64Ja2NddjlBnNPO3ZBrQAXIxHP/pvzztBHm5ndcXAHsxQ3l9i2 Gorsu68m+XWaG7P8ltXUCoPDHJcj9N5tdHCbaTEaSe3dIj8uWhOGRmc5SEbMAllahfuJQfmHGJ+ vN7y8kP/qMPSyGGxYNAkTQa4+wQVabr4KatchXbZTbZ8O5PzfENh1Z9RFgJkYB+EdpMcxvNspC9 jsKR0giPJgGs9SDA/aDgjy3q67gGqahRNXdVDDPi5mV1xqLhjYRnCiuX1zPJ2TRUoKt36L3xu8a goj/w2dh412gt/Pi8k5iS+GDAy3OyNYM6jtZpofO1x3l46uV X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Level: X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:dkim,suse.cz:email,suse.cz:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; R_RATELIMIT(0.00)[to_ip_from(RLhafujjw6m7bafrsz8p45s31g)]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Queue-Id: 3619567F15 X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spam-Score: -1.51 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Use mmb inode buffer writeout infrastructure to reliably write out inode's inode table block on fsync(2). Signed-off-by: Jan Kara --- fs/ext2/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index 74aca5eb572d..6ce832da944f 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c @@ -1612,6 +1612,7 @@ static int __ext2_write_inode(struct inode *inode, int do_sync) } else for (n = 0; n < EXT2_N_BLOCKS; n++) raw_inode->i_block[n] = ei->i_data[n]; mark_buffer_dirty(bh); + ei->i_metadata_bhs.inode_blk = bh->b_blocknr; if (do_sync) { sync_dirty_buffer(bh); if (buffer_req(bh) && !buffer_uptodate(bh)) { @@ -1627,7 +1628,7 @@ static int __ext2_write_inode(struct inode *inode, int do_sync) int ext2_write_inode(struct inode *inode, struct writeback_control *wbc) { - return __ext2_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); + return __ext2_write_inode(inode, 0); } int ext2_getattr(struct mnt_idmap *idmap, const struct path *path, From patchwork Mon May 11 12:13:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236005 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=mjCr3UQ0; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=mHQantlO; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=jZqbX762; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=UMaQ10L9; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org; envelope-from=srs0=m9eu=di=vger.kernel.org=linux-ext4+bounces-16425-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf6q01lbz1yHx for ; Mon, 11 May 2026 22:24:34 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf6p6gcKz4w1c for ; Mon, 11 May 2026 22:24:34 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf6p6bSPz4wB9; Mon, 11 May 2026 22:24:34 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502274; cv=pass; b=L+TgnsdoXzZ493HOK+Lt6dN0FdRyi9xTcebEk10VmNZVM4tv4YoA8hkfrBpwRXsGH19f6x/EUG6RJbnVYmIvvHJjgDa50ILl6EKrB1YjKfP/2N1yvIprAGO57YR94WEXIgUYzffZOApbO/Ayh9LJIO6MtKUhOZS2S6HrCrQcO2g29dzxUvtdEvXAwwUVeThhxVIclcbMmtHeE6uCydxgxowRiLaWO99DQA1Ul0mEhOW7ivYQ2taRFzabHwRJsbw19o9cnXMW6hZh7horBi4kOCNZYinyWsommcFbo7gS8GkUeE5TRXjbfymvlrsguiyK8GbbGu7aZw7oQzvA0VezSg== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502274; c=relaxed/relaxed; bh=fGmRaYFQwdub0DXXUza1Xh0kPWDeyqrWqE79oc2/MVY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hY3RHSqj7DQc32bK/TKdT3A7D3OKdKwCyFhrVPDLPnHWpQHNjqPEi60UY0py8h/axZrcCxiRThgZveu1Fde+RSjMVcIDO9R/Hj3QWtABNh99EYh4RxkfWvjWeeVmChatU1yhLQZol1ArjBZkKYr2oF4hNEtAd5ZOVPNESpBuuu5zMPcmRixt1ZZ4B/TAYBnWlDNs5joUBUwbRuEgp2Y8MkkVAbQHEnzqezYoOlU3RBIK0OeanRw4WcUaIXG7Kv7tFlXoaZy0GGt/TgJcVueiBQQmQhZOC1yirLdPvDuZuwiMefCp78VzFp3eTIYfPH4BJtd/NeV0S01tAKw+jB+dmQ== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=mjCr3UQ0; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=mHQantlO; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=jZqbX762; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=UMaQ10L9; dkim-atps=neutral; spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16425-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=mjCr3UQ0; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=mHQantlO; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=jZqbX762; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=UMaQ10L9; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16425-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf6l4K5kz4w1c for ; Mon, 11 May 2026 22:24:31 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id BD9F330CCC05 for ; Mon, 11 May 2026 12:14:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6018D3242B8; Mon, 11 May 2026 12:14:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="mjCr3UQ0"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="mHQantlO"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="jZqbX762"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="UMaQ10L9" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C06CC37B3F6 for ; Mon, 11 May 2026 12:14:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501665; cv=none; b=TmWcN2pngAtGZ2qjRYa3vCQVEsjyaV8W8QFyxBO2uIC6oJRhsUBNEGmdRhdcd1zIlLVyo2+xnreyjuK+KD6qBQt+Kw4KmKShhd1fjHQQusj2LRIbaWfAP7wR+5tNXhN+LhwDRgyARoPe7153PKeI5cWkp7miBBR+fBU1yHUvXKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501665; c=relaxed/simple; bh=HIzCwBCm/MtiIGCNy6CLFL7D2gNiBlPRrMvJiyLYQHk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WXgHM1DlEd6kTIb9ByABN4cobA1LCpCduy7eP4cnukPY9VdoiavTSduV6jiM4cYiVeKVR4oqa+abJqdXoc6LwjthzE8k7uE5AKiyt52/iqh7hG7/JiYaQM8xnCmymQO5rqfZ/WCt+RmFKgdlKzP1EHgblk5oj0c9MStptvSB9fs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=mjCr3UQ0; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=mHQantlO; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=jZqbX762; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=UMaQ10L9; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 3FD3667F5B; Mon, 11 May 2026 12:14:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fGmRaYFQwdub0DXXUza1Xh0kPWDeyqrWqE79oc2/MVY=; b=mjCr3UQ0bQE0A0icTwb2pu6LfDS+kvUMWJEskCE4DEBHMGDiokw9lERN5ZcpGGvp+lcLP/ LTciEyn9M/lYYmkrPy3u+3304HkORZew2V2KiWoU/HhiB8U9YZY61yE6UYI8w+Agy92nMe Eh2MJWUktnqFGBSh2GlHa0bGzHF7yuI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fGmRaYFQwdub0DXXUza1Xh0kPWDeyqrWqE79oc2/MVY=; b=mHQantlOS6Ec6HkjhY8LYZPm6vjzB8o1f6C5/tAZQzYa/JpIGITx7naoD0v4GDFDAD4xQG Go3qgJ41dPJ+GHAg== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fGmRaYFQwdub0DXXUza1Xh0kPWDeyqrWqE79oc2/MVY=; b=jZqbX762gjgwCuPyIV3XJo00QfaB2llqTkIrSxllZqmlBRIUF7QyfAvZGYA7nBOiDIP05z 7Mefc8F0yD9jUMIILSJ8h/XW0flQXRtdhWgKYQyk0VEqYUIVxsey9sj5deie4txIQxqNV7 S6UXfcQP2FEg7JO8Vug68iJR42RHNew= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fGmRaYFQwdub0DXXUza1Xh0kPWDeyqrWqE79oc2/MVY=; b=UMaQ10L9kpHf5LZr5G+UPJSLdIORlQcElliSt+huSSvqk//KsjUBYudWG7+ODHoVID3FEe 3Q0v6FHpXyMwJuCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3239D593AC; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id jLpBDBPIAWrXWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 84532A0905; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 5/9] udf: Fix possibly missing inode write on fsync(2) Date: Mon, 11 May 2026 14:13:55 +0200 Message-ID: <20260511121356.241821-14-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=969; i=jack@suse.cz; h=from:subject; bh=HIzCwBCm/MtiIGCNy6CLFL7D2gNiBlPRrMvJiyLYQHk=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgHDKvD+xR6Lj1wXq9hIUubTV4m98njC+iIy R85FUadcZqJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHIBwAKCRCcnaoHP2RA 2d/+B/wMdpwi2ddPHdJmH/WmOjyiq2gFVB4Joy2EQCnC2vM7XdUwz7AgH7VgyhRone43MBzWxMu CULDeXr3tk8FAAGOKNvbnCzWw93+13FB3q1N0mp0ekEiv+2Dvc62yIGhZSoMYHVPnm9G1XcH+hF B5U9UaKRJojiNteQqcb2TOOPAx5HmS9XXf/3SBGyJgFZLUdMNwlaYLSe0Wq5m+bJcH5qg7JX/TA 5r8fHSW/Avh0XU31XyQRwFHS5fAp7ONhdOiM/b9O02WJweE9Ed5FRbw2ZYG+IPt1I9zu5h3k2mr q3HDmNuYI+H7+eV4PBTCAhcTUK+F8Cl41ErOQ7CXgt1fRMZt X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Score: -1.30 X-Spamd-Result: default: False [-1.30 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.cz:email,suse.cz:mid]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Use mmb inode buffer writeout infrastructure to reliably write out inode's block on fsync(2). Signed-off-by: Jan Kara --- fs/udf/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 67bcf83758c8..4102d3482319 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -1707,7 +1707,7 @@ void udf_update_extra_perms(struct inode *inode, umode_t mode) int udf_write_inode(struct inode *inode, struct writeback_control *wbc) { - return udf_update_inode(inode, wbc->sync_mode == WB_SYNC_ALL); + return udf_update_inode(inode, 0); } static int udf_sync_inode(struct inode *inode) @@ -1937,6 +1937,7 @@ static int udf_update_inode(struct inode *inode, int do_sync) /* write the data blocks */ mark_buffer_dirty(bh); + iinfo->i_metadata_bhs.inode_blk = bh->b_blocknr; if (do_sync) { sync_dirty_buffer(bh); if (buffer_write_io_error(bh)) { From patchwork Mon May 11 12:13:56 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2235996 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=lY3yTbKm; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=2iJ2GDlL; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=BsggxtZY; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=/9LfU2wm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org; envelope-from=srs0=ack1=di=vger.kernel.org=linux-ext4+bounces-16428-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDdwH10f6z1yDx for ; Mon, 11 May 2026 22:15:27 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDdwH0VlDz4wJP for ; Mon, 11 May 2026 22:15:27 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDdwH0PN5z4wCG; Mon, 11 May 2026 22:15:27 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.232.135.74 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778501727; cv=pass; b=L9ZSmVnD7II/IllQUMsRO43+BGxzTiFXI0H97VuAzrV9c12WjjZ5ovU6dP/4NFZQRh8L/aTz4frcYFSqlgdqT9bJwXZGx3Vv1UZ1WU2P4miws3kfFCXR1qzTVmrVdHOMNGFp8uHO2KnaOPX81D9sFa8i1r2VvL/MHWel13KFHTmbcV6qXyf1YwFdyb7vZyV//uXrDXv1aNzAw3unnjFC/S2ap7bjuLo58E9wqHVwaTPsVB+fS0zIxZsokawJ2fBch7ZRnXn9q3rmXlEmxD25qsal96cuO9w+i6sUHKOhfdQXu+qM5/CYNlXfof3Fbyj4XT6JuRtHN8RsG4LFuq3tzw== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778501727; c=relaxed/relaxed; bh=MdJsKg5xj4D5ePmWVLbDI+h77xPHq+7ttdlKIRveNaM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=xM1Gy3QI65latq+iwrxTNAocEhfA0kxHHGvSzQMtRe7W5rTxm4zap5oVgNpCDGIe57Szrwow8dOiQdZCEnT7yZfMqS/Oc8YW/JUQBNbM3pD03XnYfgSjLhp6OaDyZfijedtjOQWfFWEVBahgfWsn+onGwVfOyPsceRhkL3nkk185vCYgbuANAThaYwJc94VqbHJjx7M3wabZtKjD4MeSSpDduXNUeDx5MqyzW3U5T6VvdVJ4bYXecKt1ZJjxeX/AMao2qrOgqomyzQeUWORKkKWqQb1f8HARcTVtmcGYumTivqtNJXUJbsX8HlxNP2aC/7fLWWBE05iR99ouvq1Wag== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=lY3yTbKm; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=2iJ2GDlL; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=BsggxtZY; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=/9LfU2wm; dkim-atps=neutral; spf=pass (client-ip=172.232.135.74; helo=sto.lore.kernel.org; envelope-from=linux-ext4+bounces-16428-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=lY3yTbKm; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=2iJ2GDlL; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=BsggxtZY; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=/9LfU2wm; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.232.135.74; helo=sto.lore.kernel.org; envelope-from=linux-ext4+bounces-16428-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDdwC39TSz4wJP for ; Mon, 11 May 2026 22:15:23 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sto.lore.kernel.org (Postfix) with ESMTP id F19F83013859 for ; Mon, 11 May 2026 12:14:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2F4B4382289; Mon, 11 May 2026 12:14:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="lY3yTbKm"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="2iJ2GDlL"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="BsggxtZY"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="/9LfU2wm" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1F013242B8 for ; Mon, 11 May 2026 12:14:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501683; cv=none; b=ubwRslDlrkYxeMtNE7hkvQsPee6TrGVNXqgrjaNHaCDUES3Rwh41sgj5hacKaavaoESC58gQHLxu+960PFHCw6kbXjeCVFT7MDMHlWqQywo9dPASGBO19W3ySx9lX7qzkPr7nLyrkscb8Yd0tpkVntZMQcMfY0JPLIHB/20+l0c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501683; c=relaxed/simple; bh=aQ2MwgrnlA3W7ZObSgvpT1TzHSKyuma94Dp/F2WpCLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XhNNqnWOmbG3fzosBX9CIPOBFeRWFB347oKj/D8PVZrLDeLvPKhxl8EVi8YnNo7paQNLsHmJ4ZEa/w34xlg/ptxPeeY71T8b01QOHNukf/2977JwXv0GibXGM4+Tso2QgZSlSVHNrS/VFsHsQEMl1NdhuPGgemWzPiTvqHh+J0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=lY3yTbKm; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=2iJ2GDlL; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=BsggxtZY; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=/9LfU2wm; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 4EFA767F62; Mon, 11 May 2026 12:14:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MdJsKg5xj4D5ePmWVLbDI+h77xPHq+7ttdlKIRveNaM=; b=lY3yTbKmqLYfJMMxC4ljTuy5o+cFeZw+bRAmELsj+XjbKON0tQIzDJNuM8bGJQeq8+iwV4 IhhZwa9RTxXpk0zp+xYIJ57bGzkaf7jiDYYAD00rRFe6VPbD3VuZN4OFmq2uN3TR2MvngB QKgEFeYZGijxKfS3rEHF+uVpTaJdohI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MdJsKg5xj4D5ePmWVLbDI+h77xPHq+7ttdlKIRveNaM=; b=2iJ2GDlLWQOxzX4oNocFZ4kWo1vGtX+35uHyh75H/J3hhvRgZtbT6MG4WpNUFrreU3wb9p rF6UKjdWdlubBOCg== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=BsggxtZY; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="/9LfU2wm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MdJsKg5xj4D5ePmWVLbDI+h77xPHq+7ttdlKIRveNaM=; b=BsggxtZYBF+ANwchkfeY/8k1ZYXSJkZpRxlnQJ+bG3g2Hsw+H25N2Kjvf9lwA6X1c071CH yepCMf9IzX/v6YLKvSNcmH2+pmUMThgvtPvs0nTeRAj2TRWjAs8kN8l1h/P3HS/uVMbXw9 XvbS8/kcYnVxiDcDrMDtHZV0CMGAiYo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501651; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MdJsKg5xj4D5ePmWVLbDI+h77xPHq+7ttdlKIRveNaM=; b=/9LfU2wmQ1SF094zApWd6C3zcPQUhnyoYP7Ir260W+yOa7Tr8MCvr6eE1Wa6F4enLxS+Dn 4ufncSs1G590VcAg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3E3BB593AD; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id IE4wDxPIAWrZWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 8968BA090F; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 6/9] fat: Fix possibly missing inode write on fsync(2) Date: Mon, 11 May 2026 14:13:56 +0200 Message-ID: <20260511121356.241821-15-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=947; i=jack@suse.cz; h=from:subject; bh=aQ2MwgrnlA3W7ZObSgvpT1TzHSKyuma94Dp/F2WpCLE=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgIDlkSuGVBhj5uesXWOQoSdTsDMpLRY5f3t LGb1jKi92eJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHICAAKCRCcnaoHP2RA 2WN0B/47iqb5vXicPqonoZcL/KtkfavXnd5ARGIJ9NxS1Iq1UVx4TA6KcboG8VOgfTG3xSQ66ec qRDlRmk+aTvpFKxOoeKzjcoja25frOEVD5IakAZd3cWhDM2lly4dj6lTrb0Q/4pzqPl7SKwcvv4 9jADMTWqLFwEMy/nS7EKiiu/lQ3bli+JUEauy913kvycc3kADDiVVFlybNbJ0QVipPjhYZwQ1IS 5CxYqO055yPDqV1bAFiWdXLD/5mMKfefQ+MdJe/yWCtgpWfRsXMUqtVq+uPYwv2ioEAtidrChcm jsU4jyJOMSvAUhZ0eZhqiZFffV6ymdJqjHa3miH3C24LS3Ko X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Level: X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.cz:dkim,suse.cz:email,suse.cz:mid]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; R_RATELIMIT(0.00)[to_ip_from(RLhafujjw6m7bafrsz8p45s31g)]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Queue-Id: 4EFA767F62 X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spam-Score: -1.51 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Use mmb inode buffer writeout infrastructure to reliably write out inode's buffer on fsync(2). Signed-off-by: Jan Kara --- fs/fat/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 28f78df086ef..4ca00b7a618b 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -907,6 +907,7 @@ static int __fat_write_inode(struct inode *inode, int wait) } spin_unlock(&sbi->inode_hash_lock); mark_buffer_dirty(bh); + MSDOS_I(inode)->i_metadata_bhs.inode_blk = bh->b_blocknr; err = 0; if (wait) err = sync_dirty_buffer(bh); @@ -925,7 +926,7 @@ static int fat_write_inode(struct inode *inode, struct writeback_control *wbc) err = fat_clusters_flush(sb); mutex_unlock(&MSDOS_SB(sb)->s_lock); } else - err = __fat_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); + err = __fat_write_inode(inode, 0); return err; } From patchwork Mon May 11 12:13:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236007 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=0Eqy8gx9; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ufZTr9VB; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=0Eqy8gx9; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ufZTr9VB; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=150.107.74.76; helo=mail.ozlabs.org; envelope-from=srs0=o49m=di=vger.kernel.org=linux-ext4+bounces-16429-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf7X1DBtz1yHW for ; Mon, 11 May 2026 22:25:12 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf7X0cdNz4wJL for ; Mon, 11 May 2026 22:25:12 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf7X0VDRz4wJR; Mon, 11 May 2026 22:25:12 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502312; cv=pass; b=ugse4y/CzYgoq9enXTavpVO2WZop1bSSkTIrtMnGkI/euCMQ4POZHTKyTm5CPCB6wN4vYvMpCY8wezK8XmKQwKhXHzRKtOWKyAySAZSywyNt5jT/WmEKWFQaKBhFWoUFubrXuQWhwXP5vDima8CLb+s6sUSWapsUkbWP+Wn5UjZUWAyv8p1ct+H5gxrKn7CWzq0IgcA6JgQAKS5Yg6Cpu/XNtjLe1LTCIwpg93djiFmJdbkuUqtSVgIqccBKcc4qvzSMPfUoR8MW86KE1TaI5VuWY4ssFKSVvxXA9FnL+/8peLiX+62ixsBs/6EgM1EvCWw3m6x/A/LBJZi1IAQgug== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502312; c=relaxed/relaxed; bh=GHZ8NrriNcQB1ocdLbMs1wRoQiwQjofAO8/6onjoWCU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=wP+sIFTEi8eYcHj75LWAq986OarvEIxDLNNKrJnGNl6Cgw4B16Swx2nsDboIfpal0Tzr2CFYZySTnhy+Rrg3e+4VJ8FNPNY/8WKZIHpZ9Gc2DBL0Ul1zbDffYNblDe9FzeiE+PcmHIfGVx7fFWS7VM4FajcwjtViIsBw9vFiNzyLXx3IC3Gm4ODDbFa5P9Govmvjvt6E6J9Xu8bIpNunug20M8wkm2/2OsFNLGcGO+bWExMs/8daXLxRHS5X764JWUGh8or+32jMr8IeK+zXvnU55UXjiKeJ3ZKFspCvQnQCqcyDje7Yp6NkkB129W53iarOQi6IDLtH/5svyJIkow== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=0Eqy8gx9; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ufZTr9VB; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=0Eqy8gx9; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ufZTr9VB; dkim-atps=neutral; spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16429-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=0Eqy8gx9; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ufZTr9VB; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=0Eqy8gx9; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ufZTr9VB; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16429-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf7S4l15z4wJL for ; Mon, 11 May 2026 22:25:08 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id BF27830D9ED2 for ; Mon, 11 May 2026 12:14:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4B5F9386578; Mon, 11 May 2026 12:14:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="0Eqy8gx9"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="ufZTr9VB"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="0Eqy8gx9"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="ufZTr9VB" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDCE637E2E1 for ; Mon, 11 May 2026 12:14:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501689; cv=none; b=h2C8almLAGjnQK514Yy9fymEn5AZaeVbg8XMvNHA5jDaZwe0v2hhL6VzOGzjHbjSpMdO9WWzMv/zkTxM+njzIkIptvuC+yj7PHAy52bl8y1qqgVIXvFGfJ07TAwen4AhOyPqx5pjRbkjfJ8bLcCQrZMD0M3VFMNjf3S3mQgEnfE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501689; c=relaxed/simple; bh=JR66G7BuuWXlP5ApW208Gob36LAzFXhDVGJsRhntN4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rvEnUSNWPrW9G0krP1QJmCuMg5cw8o8Rcj03lDqZtz4g3veEZ2/40oqCJ8VNS2AkA07M1w/hhagyYMIpNTjmq/uGdH0dh3yrOSHRurh4hiz9XHVmHdKP2rMaFE+YqDR5AdWFPqSYJCckodJ4Lk3hoA1/eIOTLO2vcuNynvD1iAo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=0Eqy8gx9; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=ufZTr9VB; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=0Eqy8gx9; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=ufZTr9VB; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1529767F1F; Mon, 11 May 2026 12:14:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GHZ8NrriNcQB1ocdLbMs1wRoQiwQjofAO8/6onjoWCU=; b=0Eqy8gx9sl6Aq1Ikn9dAuWse/7X/W7TVWMf+zTVXDJ8QgpjczdBgyP4Wqp3wfEHIvoYfp7 PUOptK8l5u9Lzxw4sR17pmlYY9wNuT2UA+ZUFRHNo+8XGs3q4zLeXBlL44Ngi6WwYAPBcj fLYgGX6+6NRRqJ8yI0D6zKZXx2OhPGE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GHZ8NrriNcQB1ocdLbMs1wRoQiwQjofAO8/6onjoWCU=; b=ufZTr9VBdxNT5MJWbE3MHSbSWcQk/FTuDfiOlwOR3D00HyfC5/0JqPePcA9n0QRmDGZB8C wYcn6JiiWhXY/pBQ== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=0Eqy8gx9; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=ufZTr9VB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GHZ8NrriNcQB1ocdLbMs1wRoQiwQjofAO8/6onjoWCU=; b=0Eqy8gx9sl6Aq1Ikn9dAuWse/7X/W7TVWMf+zTVXDJ8QgpjczdBgyP4Wqp3wfEHIvoYfp7 PUOptK8l5u9Lzxw4sR17pmlYY9wNuT2UA+ZUFRHNo+8XGs3q4zLeXBlL44Ngi6WwYAPBcj fLYgGX6+6NRRqJ8yI0D6zKZXx2OhPGE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GHZ8NrriNcQB1ocdLbMs1wRoQiwQjofAO8/6onjoWCU=; b=ufZTr9VBdxNT5MJWbE3MHSbSWcQk/FTuDfiOlwOR3D00HyfC5/0JqPePcA9n0QRmDGZB8C wYcn6JiiWhXY/pBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 542CB593AE; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id BJiLFBPIAWrdWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 8E430A0913; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 7/9] minix: Fix possibly missing inode write on fsync(2) Date: Mon, 11 May 2026 14:13:57 +0200 Message-ID: <20260511121356.241821-16-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=910; i=jack@suse.cz; h=from:subject; bh=JR66G7BuuWXlP5ApW208Gob36LAzFXhDVGJsRhntN4g=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgJJ0SecCgo12DJwqoyNS1LrpfZgVXoHzXPx Fx2mJ5loFKJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHICQAKCRCcnaoHP2RA 2UtiB/9Up35qSyzH7Dkwk6oaWpRCh1ok7+hTFScrB7FH82pVuUbd8F2TAl80PcHU9+Gw//oT9lR F2fwFk2mMm68cqdJesZe0TYoGeyofnn8/GTcgLdvR3cy9NxBKM0egTVyWZTC2BEuFLLtQa79a+E y/LF9CBLTSwyveBhngYs8b4XyHBMuUw5alWG5bQJ94DndwtzKKFhYYEABVIwGQ1bTtdvktQfmoP H8Yqcs5exHWBP75MYe2++C1H4bu8Dd3F4/3gCUrR5DIp3Mxjygk/pXQA5AvLf8y9vxj4uJVhsjK /jO2Q5T6Tr53wHb6dJV0NMbnezrABlrq+mXzR4BmSTaOo7md X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Score: -1.51 X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:email,suse.cz:dkim,suse.cz:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; R_RATELIMIT(0.00)[to_ip_from(RLhafujjw6m7bafrsz8p45s31g)]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Rspamd-Queue-Id: 1529767F1F X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Use mmb inode buffer writeout infrastructure to reliably write out inode's buffer on fsync(2). Signed-off-by: Jan Kara --- fs/minix/inode.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/fs/minix/inode.c b/fs/minix/inode.c index 9c6bac248907..e3e05c9308bd 100644 --- a/fs/minix/inode.c +++ b/fs/minix/inode.c @@ -693,14 +693,7 @@ static int minix_write_inode(struct inode *inode, struct writeback_control *wbc) bh = V2_minix_update_inode(inode); if (!bh) return -EIO; - if (wbc->sync_mode == WB_SYNC_ALL && buffer_dirty(bh)) { - sync_dirty_buffer(bh); - if (buffer_req(bh) && !buffer_uptodate(bh)) { - printk("IO error syncing minix inode [%s:%08llx]\n", - inode->i_sb->s_id, inode->i_ino); - err = -EIO; - } - } + minix_i(inode)->i_metadata_bhs.inode_blk = bh->b_blocknr; brelse (bh); return err; } From patchwork Mon May 11 12:13:58 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236004 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=wDkO+jFj; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=nbPQKyey; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=wDkO+jFj; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=nbPQKyey; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=150.107.74.76; helo=mail.ozlabs.org; envelope-from=srs0=6ace=di=vger.kernel.org=linux-ext4+bounces-16430-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf5D5y45z1yKT for ; Mon, 11 May 2026 22:23:12 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf5D4jZ5z4w1c for ; Mon, 11 May 2026 22:23:12 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf5D4f5Xz4wB9; Mon, 11 May 2026 22:23:12 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502192; cv=pass; b=lk0THkmolfNFNkpjl3377sCaQX35ZwCy5ggfufhu4ReVJGojXqQ8ggpqEZYtcsKdguJo56uG009z5Jj7BbH9wn3b41dHTCFvHMt2DG3joTo18n5nDwL+AMCj+6mvFOsxdN4t823foV4HARSCmxbkqTJQjmMlfVlUxuEmHwhzR7qB5Frd+x2YShF7mvnik7SLCKv1mzPB6rilL6F6xob9crTzNJxcy3YV5Ncgf/ECpwo0sF/2tGEaw6IUTnU2u8dTyYVxpxReaR/Xr8wvpA4nFUkb9NkeVfy8Ccrf0f3VNiZND8wX9fzFKvQIDFtKM/yOfHRSWk8YECXHPLm2Pb9FJA== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502192; c=relaxed/relaxed; bh=VeJfFmTMGndBnuNB7u8h6fItPTyDNzLq1gHe0j0nR40=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tJzsgXkgRZ5Kkcwj33veHTHoT4JlkoWzC9tuiFPdfTRWXxr8JE6Uf44pkmd+Z2YAHIXTu5KH5hHYTbMFlwwtpJml8C0ix8L5K47NhfG96/X+uKYqF0KFNCbFb8K3NpeXp/d/g59w3ZfoJhk6g6GXie86MLSbmXJTH8TB5R5EUvtaKVbgyX2AiXY1Gjj03JJEgHH4BCIxVcLrBuN8LuOtk+3YE401DJiV4fxqoOdIkWXcqkyS9cjpYnBv53+XxvwqadBWXHvsj8nN/fIEmEpKQHuu1ObMrdGmp2TU1H9DHL20layWYUWJnV2sxnMhodcv3l48dROyhiAei/VBFldYqQ== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=wDkO+jFj; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=nbPQKyey; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=wDkO+jFj; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=nbPQKyey; dkim-atps=neutral; spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16430-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=wDkO+jFj; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=nbPQKyey; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=wDkO+jFj; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=nbPQKyey; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=172.234.253.10; helo=sea.lore.kernel.org; envelope-from=linux-ext4+bounces-16430-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf590nPRz4w1c for ; Mon, 11 May 2026 22:23:09 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 9342B30B65A1 for ; Mon, 11 May 2026 12:15:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6099A3815DB; Mon, 11 May 2026 12:14:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="wDkO+jFj"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="nbPQKyey"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="wDkO+jFj"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="nbPQKyey" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7DD93815C2 for ; Mon, 11 May 2026 12:14:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501695; cv=none; b=tVHa8MXhz1O09azuTzNwiy2NRtOpb/WVULYtYQ214vKWO8X53gVT5ihqc58BeLKE7bIWDAmk6PwH7fANAX+30paelS5sE559/NCWfp2cpOLnUVtTNgTfR+NadYjy1/Q8rbflkIVTNMpIEAidn9fLxvRGeZRVjtGwbf+ik1DVd3Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501695; c=relaxed/simple; bh=HShF01tFV1Sp7EhKzJG7sSGt9NcpFUAnXkEKhUdKL2I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZrwJOIH3YSanh8T8OrP54N/OOy3ULnBDTeNZRCn3R9fpYoBmFZjPFpXJPZzN978iSqiKDAmqt7ZBNCBV4SdDhHTHw0/Q0cSHJEDrnhNKOUXFuttTQs9HDw/5d+4jeAnjtQiWU7dlVjoVrKF7fWFB4YFtIdD/jlbR8ic5+ePG2m4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=wDkO+jFj; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=nbPQKyey; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=wDkO+jFj; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=nbPQKyey; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1BAA267F5D; Mon, 11 May 2026 12:14:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VeJfFmTMGndBnuNB7u8h6fItPTyDNzLq1gHe0j0nR40=; b=wDkO+jFjzGKIRf2I+dJvipXunwRynTN23GgJUk5EZ/GDrpmNMZrQVbnmOe5qe9Hftl4X2v /h02ArXMi39mXLLnyYz/tG9h0h9at2WJ5Dydy9jPL9jPPzvQ7KXA7gAcx2s9Rqm9pjI8vG v3bsrcWqHam5H04I8dbDXpa+ln08wXg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VeJfFmTMGndBnuNB7u8h6fItPTyDNzLq1gHe0j0nR40=; b=nbPQKyeytoV8hlKjg7J1N0Aelqjj+2FD0bsgZvlQ1upxEdmaPRqoOCWKVSVFv7DBbWFMyK 3vRemLyF5vujEICg== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=wDkO+jFj; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=nbPQKyey DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VeJfFmTMGndBnuNB7u8h6fItPTyDNzLq1gHe0j0nR40=; b=wDkO+jFjzGKIRf2I+dJvipXunwRynTN23GgJUk5EZ/GDrpmNMZrQVbnmOe5qe9Hftl4X2v /h02ArXMi39mXLLnyYz/tG9h0h9at2WJ5Dydy9jPL9jPPzvQ7KXA7gAcx2s9Rqm9pjI8vG v3bsrcWqHam5H04I8dbDXpa+ln08wXg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VeJfFmTMGndBnuNB7u8h6fItPTyDNzLq1gHe0j0nR40=; b=nbPQKyeytoV8hlKjg7J1N0Aelqjj+2FD0bsgZvlQ1upxEdmaPRqoOCWKVSVFv7DBbWFMyK 3vRemLyF5vujEICg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 5DA80593AF; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id XHPaFhPIAWrgWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 92EECA093B; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 8/9] bfs: Fix possibly missing inode write on fsync(2) Date: Mon, 11 May 2026 14:13:58 +0200 Message-ID: <20260511121356.241821-17-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=831; i=jack@suse.cz; h=from:subject; bh=HShF01tFV1Sp7EhKzJG7sSGt9NcpFUAnXkEKhUdKL2I=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgKwCyl5ndzHB/xM5z0of21Lhdzg1KMVKWXm dXsnnZ+UqqJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHICgAKCRCcnaoHP2RA 2bcOB/4qsXdRTUUHWsyrdHBe0ArqAvhotXVylCyusRvlUYjgwnHD1ipqY5X1IHslXxIGAfQAm9R cIukWzejvIfUdHaKByIwy0l60D/MACmo6c/UIgrs8RMyLtkIc3DusuqLAwbG6QvIQv/yurg6/xm kpQbh7e+T9ixUabkuuLAEy/38Ru/S/EOiWcCVOm7f2mAGHNh/IJ+okL2VITWncL/8MJm0lt9rZB Q3AlYrSoyL8f6eyL7PPDa1B8Zt/xOcplSYCihF2ovIEk2HTCaJnoHSAtJTRosS6eLCU3+IkDdHg CqqlqXRsHTCGChfZwvB1mZ9orLitSHtFTCz79zVFVaCMVRI+ X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Level: X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.cz:dkim,suse.cz:email,suse.cz:mid]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; R_RATELIMIT(0.00)[to_ip_from(RLhafujjw6m7bafrsz8p45s31g)]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Queue-Id: 1BAA267F5D X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spam-Score: -1.51 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Use mmb inode buffer writeout infrastructure to reliably write out inode's buffer on fsync(2). Signed-off-by: Jan Kara --- fs/bfs/inode.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index 19e49c8cf750..16d351b2f122 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c @@ -165,11 +165,7 @@ static int bfs_write_inode(struct inode *inode, struct writeback_control *wbc) di->i_eoffset = cpu_to_le32(i_sblock * BFS_BSIZE + inode->i_size - 1); mark_buffer_dirty(bh); - if (wbc->sync_mode == WB_SYNC_ALL) { - sync_dirty_buffer(bh); - if (buffer_req(bh) && !buffer_uptodate(bh)) - err = -EIO; - } + BFS_I(inode)->i_metadata_bhs.inode_blk = bh->b_blocknr; brelse(bh); mutex_unlock(&info->bfs_lock); return err; From patchwork Mon May 11 12:13:59 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 2236003 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=UyfjnaQJ; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uxW4rb4e; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=UyfjnaQJ; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uxW4rb4e; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org (client-ip=150.107.74.76; helo=mail.ozlabs.org; envelope-from=srs0=6pgm=di=vger.kernel.org=linux-ext4+bounces-16431-patchwork-incoming=ozlabs.org@ozlabs.org; receiver=patchwork.ozlabs.org) Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4gDf4R4rkZz1yKT for ; Mon, 11 May 2026 22:22:31 +1000 (AEST) Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4gDf4R4L7tz4w1c for ; Mon, 11 May 2026 22:22:31 +1000 (AEST) Received: by gandalf.ozlabs.org (Postfix) id 4gDf4R4DFNz4wB9; Mon, 11 May 2026 22:22:31 +1000 (AEST) Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: gandalf.ozlabs.org; arc=pass smtp.remote-ip="2600:3c04:e001:36c::12fc:5321" arc.chain=subspace.kernel.org ARC-Seal: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502151; cv=pass; b=MFHP5TDLzaMtccPlWlZOtIw0r2ZPmW0UYMtIOGZJknmLLeZ2Zbezk2uzMehTJk9TfJu1GFP6h3Dc91Qf7V8Yqk7NISFdw+FuklkCdAuR/NFMbbRt+3Wel5m0i5aPg6SdEQ+tVWdOU2TvzdoH72MdyQI01cd7kk2Qnjl5AOXFyTATvYuIa86FTyHGik5/y/jamCnVoqgCLKwVPCg6QXf1dxg8AP3z/UJVc/jjFPuahgwz/sCbbMZwiGhtksFI8psmFj2LWAEkPEHUxIlCNeXps9NZfiYI+HiEIEV/LmJ+JFGCYU+HICyYGszOrmI2Dbn3Dfbc8aid101RPzqSw8e2ww== ARC-Message-Signature: i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1778502151; c=relaxed/relaxed; bh=1Y0UCuUMEYa69Iu7Sxj4Abfa/UjfKZKajA7MJlEpId0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GJkTe6IGN61oDmMjJweFsMXKLutYVfaOaEAeXXRgRexWLj2UJWDT0CjiRuLpzL0WW8kjaqyaR+8bxodP3cfyiJ/nFEcvGZoDyF6Gx5qUXLMhm1A2a/Nm3ytSk0HgAOfPkufuZxWWG+ZKyMm4lQ356ypmjlUhagCitWHXtag0zOY7L/gKDsAKkqwVezLdIQTSXo776JkzWEosvPOlfex59F8D8w0KMZHwPFjZH4OMOCXAkYhIsb1Fa1nM5yy6NBfzxZLJZJ6oaj0AbBLwd1qXFNAJ7e8oegW93w46Q3Ei8h+H/eQ7QktX2qvAtx24XsAcKMnETqRfj4h5zIBIORpZPQ== ARC-Authentication-Results: i=2; gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=UyfjnaQJ; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uxW4rb4e; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=UyfjnaQJ; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uxW4rb4e; dkim-atps=neutral; spf=pass (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org; envelope-from=linux-ext4+bounces-16431-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org Authentication-Results: gandalf.ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: gandalf.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=UyfjnaQJ; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uxW4rb4e; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=UyfjnaQJ; dkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uxW4rb4e; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org; envelope-from=linux-ext4+bounces-16431-patchwork-incoming=ozlabs.org@vger.kernel.org; receiver=ozlabs.org) Received: from tor.lore.kernel.org (tor.lore.kernel.org [IPv6:2600:3c04:e001:36c::12fc:5321]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4gDf4M6JRSz4w1c for ; Mon, 11 May 2026 22:22:27 +1000 (AEST) Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id E3F0930D531E for ; Mon, 11 May 2026 12:15:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 14CBC386578; Mon, 11 May 2026 12:15:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="UyfjnaQJ"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="uxW4rb4e"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="UyfjnaQJ"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="uxW4rb4e" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F2E73783BB for ; Mon, 11 May 2026 12:14:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501700; cv=none; b=c73wrJhCtuzSCIPUlBxZJoIX+ky37k1AHBbJTM5W4m2VHtr053DUm0p0D/NSa+eZi9MeykWrjSuquEzsSxMKFWEfkfmIOHIZEVWBvHTVhDXDnMqRs3JaBpKLJ8maXeVbU8GwsukNHrkYNB9C4hTR2L45vp3h0LFU3+0R6nd6sWM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778501700; c=relaxed/simple; bh=stUG94migTo99fJuoy5nGwSPVkBCch/iyaWO7GWVsCo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PNjpG3srl64lYEiBnpJ+ivnZ2AVuAgpq1ehid40DpruWDuPJjVYSVbo4sVp7KdvoV+qsi17RkQljHRHrQE3dCY2t82dF1EvFDxR2MikABDMq2fD0Mc2j4u6wUJkPtOYTN+tYag2F2+v/FYN+70IGHzyMV6EJyt8Y0XWaSo5l690= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=UyfjnaQJ; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=uxW4rb4e; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=UyfjnaQJ; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=uxW4rb4e; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2032367FCB; Mon, 11 May 2026 12:14:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1Y0UCuUMEYa69Iu7Sxj4Abfa/UjfKZKajA7MJlEpId0=; b=UyfjnaQJ6ZVvZTsOHkf0TAsHzpje07bzgrUTj1kCNC8HCzvIdeRkEtwgcep+boQh74ZCq/ UOvGxmGz3F/OMTP4prZUJWDyLTyf25+E9n/V18xuQ2HU09I681OBqmKJsrUE5kdV42KpYb Bg7zEsSlBWOJrlsV6ABlKFGWW7Od1Ow= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1Y0UCuUMEYa69Iu7Sxj4Abfa/UjfKZKajA7MJlEpId0=; b=uxW4rb4e0ovHkuIS7sF7oUfanldBVCNWaRM1zckaCNU9KzFBVOQ5HR+gJ5JqBqQK42k5Vd a0tnOu7+Qgmct1Cw== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=UyfjnaQJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=uxW4rb4e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1Y0UCuUMEYa69Iu7Sxj4Abfa/UjfKZKajA7MJlEpId0=; b=UyfjnaQJ6ZVvZTsOHkf0TAsHzpje07bzgrUTj1kCNC8HCzvIdeRkEtwgcep+boQh74ZCq/ UOvGxmGz3F/OMTP4prZUJWDyLTyf25+E9n/V18xuQ2HU09I681OBqmKJsrUE5kdV42KpYb Bg7zEsSlBWOJrlsV6ABlKFGWW7Od1Ow= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1778501655; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1Y0UCuUMEYa69Iu7Sxj4Abfa/UjfKZKajA7MJlEpId0=; b=uxW4rb4e0ovHkuIS7sF7oUfanldBVCNWaRM1zckaCNU9KzFBVOQ5HR+gJ5JqBqQK42k5Vd a0tnOu7+Qgmct1Cw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 72197593B0; Mon, 11 May 2026 12:14:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id wZ3bGxPIAWrhWAAAD6G6ig (envelope-from ); Mon, 11 May 2026 12:14:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 98682A093C; Mon, 11 May 2026 14:14:10 +0200 (CEST) From: Jan Kara To: Cc: Christian Brauner , aivazian.tigran@gmail.com, OGAWA Hirofumi , Ted Tso , , Jan Kara Subject: [PATCH 9/9] ext4: Use mmb infrastructure for inode buffer writeout Date: Mon, 11 May 2026 14:13:59 +0200 Message-ID: <20260511121356.241821-18-jack@suse.cz> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260511115725.28441-1-jack@suse.cz> References: <20260511115725.28441-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3897; i=jack@suse.cz; h=from:subject; bh=stUG94migTo99fJuoy5nGwSPVkBCch/iyaWO7GWVsCo=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBqAcgLixK2FE7z1wFDFJ9+CwNBuv5v4LWHG4qc3 5I8F0thpvyJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCagHICwAKCRCcnaoHP2RA 2QYRB/9WcT6AuTzcLr4SYizDkNP2CmihWZ6wm7zzkZg7/tY6eawfUza8GLRaqPwszyREw536RJO ipb/m1jTFsC6FZCje8L8xo19D4y64F37E3NbVAs4QbHNPQA+Kcxc4pJH/n9RxNNvCCLYbqyvtSc xSgbMdETncy4C0Jce9TYWkPNb9OKKEfvBIQAJYmBD/7JBoIuBzvrUNJkZUOq+kmq13YmPsIFKWW qgJ7FAfPv+997x38X8UiLcbEvrPe5CZ2WdHh5oI9hcavVqdOxdvUKrcYAkowOd81JDPq6ql9NDB gJKkI815EJkRDRbKwEDnIOT70KchqS7hzwbQjWpXhzQi0I+t X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Score: -1.51 X-Rspamd-Action: no action X-Spamd-Result: default: False [-1.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_CC(0.00)[kernel.org,gmail.com,mail.parknet.co.jp,mit.edu,vger.kernel.org,suse.cz]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:email,suse.cz:dkim,suse.cz:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; R_RATELIMIT(0.00)[to_ip_from(RLhafujjw6m7bafrsz8p45s31g)]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Rspamd-Queue-Id: 2032367FCB X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org Use mmb inode buffer writeout infrastructure to reliably write out inode's inode table block on fsync(2) in nojournal mode (from ext4_sync_parent() and ext4_fsync_nojournal()). This significantly simplifies the code as we don't have to explicitely handle inode buffer writeback in ext4_write_inode() and thus we can also remove sync_inode_metadata() calls from ext4_sync_parent() and ext4_write_inode() call from ext4_fsync_nojournal(). Signed-off-by: Jan Kara --- fs/ext4/ext4_jbd2.c | 2 +- fs/ext4/ext4_jbd2.h | 2 ++ fs/ext4/fsync.c | 12 ------------ fs/ext4/inode.c | 24 +++++------------------- 4 files changed, 8 insertions(+), 32 deletions(-) diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c index 74f05bd0cdde..6bbaf72108fd 100644 --- a/fs/ext4/ext4_jbd2.c +++ b/fs/ext4/ext4_jbd2.c @@ -350,7 +350,7 @@ int __ext4_journal_get_create_access(const char *where, unsigned int line, return 0; } -static void ext4_inode_attach_mmb(struct inode *inode) +void ext4_inode_attach_mmb(struct inode *inode) { struct mapping_metadata_bhs *mmb; diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h index 63d17c5201b5..2a01b8279c88 100644 --- a/fs/ext4/ext4_jbd2.h +++ b/fs/ext4/ext4_jbd2.h @@ -122,6 +122,8 @@ #define EXT4_HT_EXT_CONVERT 11 #define EXT4_HT_MAX 12 +void ext4_inode_attach_mmb(struct inode *inode); + int ext4_mark_iloc_dirty(handle_t *handle, struct inode *inode, diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c index e25d365e1179..af84489e57c6 100644 --- a/fs/ext4/fsync.c +++ b/fs/ext4/fsync.c @@ -75,9 +75,6 @@ static int ext4_sync_parent(struct inode *inode) if (ret) break; } - ret = sync_inode_metadata(inode, 1); - if (ret) - break; } dput(dentry); return ret; @@ -87,10 +84,6 @@ static int ext4_fsync_nojournal(struct file *file, loff_t start, loff_t end, int datasync, bool *needs_barrier) { struct inode *inode = file->f_inode; - struct writeback_control wbc = { - .sync_mode = WB_SYNC_ALL, - .nr_to_write = 0, - }; int ret; ret = mmb_fsync_noflush(file, EXT4_I(inode)->i_metadata_bhs, @@ -98,11 +91,6 @@ static int ext4_fsync_nojournal(struct file *file, loff_t start, loff_t end, if (ret) return ret; - /* Force writeout of inode table buffer to disk */ - ret = ext4_write_inode(inode, &wbc); - if (ret) - return ret; - ret = ext4_sync_parent(inode); if (test_opt(inode->i_sb, BARRIER)) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 3e66e9510909..09506b4de1b2 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -5786,24 +5786,6 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc) err = ext4_fc_commit(EXT4_SB(inode->i_sb)->s_journal, EXT4_I(inode)->i_sync_tid); - } else { - struct ext4_iloc iloc; - - err = __ext4_get_inode_loc_noinmem(inode, &iloc); - if (err) - return err; - /* - * sync(2) will flush the whole buffer cache. No need to do - * it here separately for each inode. - */ - if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) - sync_dirty_buffer(iloc.bh); - if (buffer_req(iloc.bh) && !buffer_uptodate(iloc.bh)) { - ext4_error_inode_block(inode, iloc.bh->b_blocknr, EIO, - "IO error syncing inode"); - err = -EIO; - } - brelse(iloc.bh); } return err; } @@ -6348,7 +6330,11 @@ int ext4_mark_iloc_dirty(handle_t *handle, /* the do_update_inode consumes one bh->b_count */ get_bh(iloc->bh); - + if (!ext4_handle_valid(handle)) { + if (!EXT4_I(inode)->i_metadata_bhs) + ext4_inode_attach_mmb(inode); + EXT4_I(inode)->i_metadata_bhs->inode_blk = iloc->bh->b_blocknr; + } /* ext4_do_update_inode() does jbd2_journal_dirty_metadata */ err = ext4_do_update_inode(handle, inode, iloc); put_bh(iloc->bh);