From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f43.google.com (mail-dl1-f43.google.com [74.125.82.43]) (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 152D937E666 for ; Mon, 2 Mar 2026 21:34:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772487272; cv=none; b=Ox7QUP9IVr2deEHqh5m1RMFHV9EBd01y4oFdFLi08zYQHgyinkjGzcrVs7LsgwI33N2KLC8YatjRZIbk/gPretgoAOOexb0BQJuv+YN5hFfFJNaGR0I7kSuRzH28MVTKzuvigTVtzL2i6DT8jivsTKRuyRQEyfdkZn7Lo+il7qQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772487272; c=relaxed/simple; bh=hk8UlceQuI431FXTiDWDxQwChWemgHl2+YsaXmHNKi0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=DSsUXLHy6xH6Dwy0nBe2hcuwneF4g9cLnWlARpZ/e4L5H2PFSVmcP67KPXzKxf2neBC1xhbS+v1WcNDn7pTg/oD6NxUgRVgzXyGAxW4mwUVxU0vtFB2ajJbnJUaW6KGs6zrBybW7Z8ey+MFokMoxGh3h6spfYSBBarVNTLHL/1E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=S3YwiYDr; arc=none smtp.client-ip=74.125.82.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="S3YwiYDr" Received: by mail-dl1-f43.google.com with SMTP id a92af1059eb24-1271257ae53so5901854c88.1 for ; Mon, 02 Mar 2026 13:34:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772487270; x=1773092070; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Qn2nyljm/kUJU9VPlVJ2WiW+iHhd0FLGscyl10Z2G1g=; b=S3YwiYDrDqeON9kC+IUSj4i0zgwc6jlbBlwTXkCs4fQ4DrFz0qygfzlx6ehkfJEyEc 39URXACUeh5lZVw1ag7wnY8s9kplLi0kGnsa13DUimKi+p0nAfFlMmfk1HgwTzoMVoRl +qiq40uEYH0RIoB98AKeFdeVEyNMr2sOY6VeOYLIbcvodjblkheRI9JnTaAWXYOBS2k4 1tAdZ3iFvlyry4JBWsB/fFDgrI71V6cT3HulGh47BGD3ITYwwzIiSABAZtPULFVSSe9D L7scw0xNL13taOpSXhMLnT+6myWpHMmivrfrcOf4DwQz5Bkca0M6VCPHwsa3SOA/1eqL ba1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772487270; x=1773092070; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Qn2nyljm/kUJU9VPlVJ2WiW+iHhd0FLGscyl10Z2G1g=; b=U4NMFChHgINsCLL7py2qG/XpwLC7Va+W64uIKfG33un3lk5qwFeI2vtJw0vAyF1SKq hGRfH/TCwgZCnpClDfJzPJbznDVu1C5PU5s0vs1FVcGiUKSjOXliDfVBp3QpF6mcmmEd EzWif9ZuElMRHro9lvgUSMJzHr5VVz0iHOeV9mXW4vOoR1l1PGeNv0hfAVitar8+I4aV QhAggrPhFhBYwcDyoaL2KIe4H0vd5LjXeGE46r3hiyd8wiCLgBW/M4VQTuiOZkDqFLr9 P2aoeYaaDIEY51EYevWk5Mgss//qBv/oCSIATb7jePbb+j5K9hIfd4kp7bpiNA4bBVb3 dELw== X-Forwarded-Encrypted: i=1; AJvYcCXtWEaVl3tk6m5ercPq4usSnEwFAqPOz4CTNAM6Qt4DjF8AIVmOHCzv2GhJlYfo34rxdjIhzxGfXtw6Z9g=@vger.kernel.org X-Gm-Message-State: AOJu0YyvcCPi57WcpJs6I39NuxEnd/wVN6lFkK2ylS9cp6VRS6+pp5zx k5EL8VmuHzTa4HBZdwQxN3095dmhli1T++ErRCrQ1HWB8nbAtt8h2Pwl X-Gm-Gg: ATEYQzyA2U5wErzRLYqrU0tpwhIu4FY1oaSfNu4YuWlqM+xr3LeBGzJ95x6eBtAKvXW y0usqS5nnq0On7kIKZTVv6N/VDo0ZpLR6NwrtXHkWKxsoO1gZjZqRgHHhKqkEznI+mNEZCL0BGC i0s9EiAwvtDG7eOsVCeGW8BY8ZG9T4ApYDWaXzXwWz9p4Mvo3mhnRVBpDasdjK3kTIoPCCEcoT3 L9nDzFw/JOnAI8dwm4qnRgCSmmasVI1D2q88jKvBHsoXFedyucJhSTPsvYM1rmlgcXMxCN6zzAY vvUfmJe+9p9uPoKtXeCGDkF1y2jr8Rmw9QAP6U5XFOLiOzrcU3bSfm5//4bxMf5YOoTRyU1ATv3 iC88y6XiXjHa7T/NVqzDAmPaOSAPiAcpYzM1NPaoNTNwpET4W7VyvvL52ypf+INcs31wAINCC6n dBsJvLKN52a4QsVlh08mk3xW13PAmRwY2fkdgHVFlZD62G0AaGEXszLU6ta+KzYT59p6YWivcQq Jb0El7cJipEqjxD+X1OuyAlL5KvuV1r8w+JTi3oMKaOSuFUO8hTY/KRrnNrfWqieyx8C1jbOEwy Axq7XrUw9GVVZb2pu8uZvF3R7z8uRPTdBDvqFyU= X-Received: by 2002:a05:7022:6292:b0:119:e55a:9beb with SMTP id a92af1059eb24-1278fb7e1e5mr5012376c88.7.1772487269993; Mon, 02 Mar 2026 13:34:29 -0800 (PST) Received: from arch.lan (c-98-51-119-100.hsd1.ca.comcast.net. [98.51.119.100]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12789a52ab0sm20032605c88.15.2026.03.02.13.34.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Mar 2026 13:34:29 -0800 (PST) From: Milos Nikic To: jack@suse.cz Cc: tytso@mit.edu, linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, Milos Nikic Subject: [PATCH v2 0/2] jbd2: audit and convert J_ASSERT usage in Date: Mon, 2 Mar 2026 13:34:23 -0800 Message-ID: <20260302213425.273187-1-nikic.milos@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Hello Jan and the ext4 team, This patch series follows up on the previous discussion regarding converting hard J_ASSERT panics into graceful journal aborts. In v1, we addressed a specific panic on unlock. Per Jan's suggestion, I have audited fs/jbd2/transaction.c for other low-hanging fruit where state machine invariants are enforced by J_ASSERT inside functions that natively support error returns. Changes in v2: Patch 1: The original fix, unmodified. Collected the Reviewed-by tags from the v1 thread. Patch 2: New patch resulting from the broader audit. It systematically replaces J_ASSERTs with WARN_ON_ONCE and graceful -EINVAL returns across 6 core transaction lifecycle functions. For Patch 2, careful attention was paid to ensuring spinlocks are safely dropped before triggering jbd2_journal_abort(), reference counts remain balanced, and no memory is leaked on the error paths. Call-chain tracing confirms that upstream VFS callers (including ext4, ocfs2, and others) already cleanly intercept these error codes to abort the filesystem handle rather than crashing the server. Milos Nikic (2): jbd2: gracefully abort instead of panicking on unlocked buffer jbd2: gracefully abort on transaction state corruptions fs/jbd2/transaction.c | 102 +++++++++++++++++++++++++++++++++--------- 1 file changed, 80 insertions(+), 22 deletions(-) -- 2.53.0