From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (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 6737826738D for ; Mon, 22 Jun 2026 17:17:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782148674; cv=none; b=aYAE+df2593F8CSTAyvELCulucy+xrAWOPZApFzxhkG4nd6k3MrmCnJl1oMe8dAzFkQSVDXjgf8ko7RJ4Uj4ojxC/fWQpTshNxBFCxD/7IMtRUv0pPqcBnX3R6pTcOP+tSG4bUDI5q/g8SkGtChzC4FY7Sf/wDs9LClQLqHFVfU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782148674; c=relaxed/simple; bh=1gRikTyfrr8CN5N/ZieSqpn+yNlhuR4u+SEoJtI42Rc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=dVlDN9kCM/EzNtr5VM8PWPJinoC7Pex42z1U907BwBQJYesKGak6bIHfyknd3vhwaMVxvOttXi9JAtAaqZLi/YVf51l4JZhsDt3/adP/6PKA63y86k4DmmJnwuJ5guvpcqO/zt/Vbgejha3x7v96Yi73NoSQ/CfSBE85XElK9sI= 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=BxwHY7ee; arc=none smtp.client-ip=209.85.216.50 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="BxwHY7ee" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-36bdda53d99so1900751a91.0 for ; Mon, 22 Jun 2026 10:17:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782148673; x=1782753473; 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=gz4kyuB3SVM7/juytwVobIKlwq0XBJAvHtbzqrR5YVE=; b=BxwHY7eeR9p6KynyXWE6BQJfdjKnbBCEfyJyFk2ULd42FoGPMjVJJ4FlPdgnHSyuj5 xo+uNiVesDBTYg+LawHXiAkj2rOAQKqvKSMF/53O9JfnV4dSOy0jEIs1gqcx2Io8atm4 Q/tKywKouPKGFrjw9emYaPmS330iGBdhPxGHMyINs04t+vkn7CQ+1SFVE0m5z/nMED/3 mdyUBCTJAQh9M4PkuUG/kxxKgPMpmTKaI2zpDM8CTOK2nRWl6Xadx1vUgD8WJmsXSK+w FAIl6uN/pIQCcyE9vuCRIeLUo/vRUpQU6fNL82c2rNcg47MVFyOSKBdwGErEs80/0CJP xIkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782148673; x=1782753473; 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=gz4kyuB3SVM7/juytwVobIKlwq0XBJAvHtbzqrR5YVE=; b=e/CJC86lp+K/yEcF0Gh2cpiplu3w/orFYRc93JNOha+kt9Z6U1SIHUjTOXsGrdt0Sn Xc3HBXyipEoKsday6xj3HTYERIwjoV+RcddSqtji9pgLv9pWFc3E8DYtskOanwGrRbmw ke5figdRF9L1/vtfiqwpz+tDc1iUQoQZgZ5+4SyIrL2UO5A18KIG79JlhQiTKnOtrAiI 4tU6e0kjeCdPaPQUDmZPKQD+MiyzUhlw+/gLu7H4rJ/2FjC7PVuuqY//wan5r2WxpngW lYK2ub/DmDaok4hz/QRFDI8JL7ydWclRCNZSSDgcCgou9ICdJut7M7RnQBM6nXpmSZ72 KCvg== X-Forwarded-Encrypted: i=1; AHgh+RoRaGWSYHBOsbC7TpiZXw0a9ja2B/oVSmq9rQ54i0qzPIWT79b5kiuprlq9UeqVWZlnhGXL4y70kqnDFl0=@vger.kernel.org X-Gm-Message-State: AOJu0YzqOVFwVef/l/NV9Zf9t31WDoy6YtATEkW6fc5ycrlsBBozaRSO w6uNzOJiVJDi2SNAJrHhohxbwjn3GAGtxq4gzWZrQD+zSQEFrlU28/wG X-Gm-Gg: AfdE7cltu+HgWUVPDzj0f+1HCP2G2vulSGOn0mlUtt+AOCTppAYbsZ9go2G6//8XxA9 qBlKv28C6Porslh0bWM4H6MNOM4/3glqnDKSffUVgnd9pBwK+86zmeOo+xv7nMRgDo8vO908jiD NQFoaVAksW2WkjqfbOsifyyzu0QkOF+crmB/5meonjVp84OronQhv4w80Oqz4FMgUfyhfWarGvz 15qUyEbaslgMTW4IRo++GADVgo6WwvrtWFm3c5su8jN1FCsgbM4HXJSsjHIl/Rdb3PGj45xQ63p afxiETzDgS5UPb4tzJDVpiKx1wSWFAAzFmRFEkCVD6hIe/jXTsnEYC4E7OWLN1EDVO4YzjbMO0s DHc5UCDoUQV2KFJr66nu2MALkQAaJ1aZMFezmRkquOQ/E4vIlYpXsMntwBPHaL/HJTJEID4evEj vq67E9CBqxQJIHIHZRacwFGmIWn2bw1wH1U5dvMD9Uka3vPBmkbLqjoKmQhG0p2baRuKCDAC72B Rveh4z0/4jstzz0DWCvIJrEj8+O4Haam5iAfCmYNJFcvf27HP2As42Xeb+Qubr6z9Yy07hlaMX9 pUm6Xap5MqalHPAC/KRCz9sdMw== X-Received: by 2002:a17:90b:388e:b0:368:3d3e:efa6 with SMTP id 98e67ed59e1d1-37d4e64ce30mr10920377a91.20.1782148672677; Mon, 22 Jun 2026 10:17:52 -0700 (PDT) Received: from cs-1047136853211-default.asia-southeast1-a.c.d33bddc1d573818c7-tp.internal (64.192.142.34.bc.googleusercontent.com. [34.142.192.64]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37d155804acsm10458958a91.6.2026.06.22.10.17.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 10:17:52 -0700 (PDT) From: Aditya Srivastava To: slava@dubeyko.com, glaubitz@physik.fu-berlin.de, frank.li@vivo.com Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Aditya Prakash Srivastava , syzbot+2bf21610eea63cb2ce93@syzkaller.appspotmail.com Subject: [PATCH] hfs, hfsplus: remove WARN_ON when new bnode already hashed Date: Mon, 22 Jun 2026 17:17:14 +0000 Message-ID: <20260622171715.1697-1-aditya.ansh182@gmail.com> X-Mailer: git-send-email 2.43.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 From: Aditya Prakash Srivastava Syzbot reported a warning in hfsplus_bnode_create() when mounting and traversing a fuzzed/corrupted disk image. The warning is triggered because the node index is found to be already active and hashed in the btree hash table, which indicates on-disk metadata corruption. Filesystem corruption should be handled gracefully by returning an error and logging a message, rather than triggering kernel-level warnings (which can panic the system under panic_on_warn=1 configurations). The code already prints a critical message and returns -EEXIST (or the node in hfs), so the WARN_ON() is completely redundant and dangerous. Remove the WARN_ON(1) from both hfs_bnode_create() and hfsplus_bnode_create(). Reported-by: syzbot+2bf21610eea63cb2ce93@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=2bf21610eea63cb2ce93 Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Aditya Prakash Srivastava --- fs/hfs/bnode.c | 1 - fs/hfsplus/bnode.c | 1 - 2 files changed, 2 deletions(-) diff --git a/fs/hfs/bnode.c b/fs/hfs/bnode.c index 13d58c51fc46..335834961741 100644 --- a/fs/hfs/bnode.c +++ b/fs/hfs/bnode.c @@ -517,7 +517,6 @@ struct hfs_bnode *hfs_bnode_create(struct hfs_btree *tree, u32 num) spin_unlock(&tree->hash_lock); if (node) { pr_crit("new node %u already hashed?\n", num); - WARN_ON(1); return node; } node = __hfs_bnode_create(tree, num); diff --git a/fs/hfsplus/bnode.c b/fs/hfsplus/bnode.c index f8b5a8ae58ff..bfc2a7f53edd 100644 --- a/fs/hfsplus/bnode.c +++ b/fs/hfsplus/bnode.c @@ -631,7 +631,6 @@ struct hfs_bnode *hfs_bnode_create(struct hfs_btree *tree, u32 num) spin_unlock(&tree->hash_lock); if (node) { pr_crit("new node %u already hashed?\n", num); - WARN_ON(1); return ERR_PTR(-EEXIST); } node = __hfs_bnode_create(tree, num); -- 2.47.3