From nobody Thu Apr 2 15:39:16 2026 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) (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 E56DC1DF248 for ; Wed, 11 Feb 2026 02:20:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770776459; cv=none; b=mnm/BG+/OeBoLx3WDov0PLwxyg7Zhl8yXsUKtUMLS6MUcygwYExCBibmQzrBORQIZjRI1kSC09hvGR6nyoloBFxx+soALZfwU3GPc4vky/BjXFXSMkfKgeLWHBW0lfL+W/Kx8ofg03G9piXZDv+LfR4SmxBo1HK1Q6hnviUZm8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770776459; c=relaxed/simple; bh=egiVMHh4lmyL3w4B4fzP4ZddDJeJokEIBFd10KuZl/s=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=ijAELGbIrk/n6Um0aV/bADKvgCXvGpaVkkuA6iWjuDHF10KrKLh0l7NflSaA1KEoRuVzEEf5wZuySoTw4LmFmLYu6TVyx5wmeGvl0L4oHifTNLQB0+x/pS7fEZsA62V8UQqaZZSne6itwoqioGZXXxZhy7YtriqtfwwdqKLRVU0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=u.northwestern.edu; spf=pass smtp.mailfrom=u.northwestern.edu; dkim=pass (2048-bit key) header.d=u-northwestern-edu.20230601.gappssmtp.com header.i=@u-northwestern-edu.20230601.gappssmtp.com header.b=HClJQGQc; arc=none smtp.client-ip=209.85.222.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=u.northwestern.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=u.northwestern.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=u-northwestern-edu.20230601.gappssmtp.com header.i=@u-northwestern-edu.20230601.gappssmtp.com header.b="HClJQGQc" Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-8c52f15c5b3so619564885a.3 for ; Tue, 10 Feb 2026 18:20:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=u-northwestern-edu.20230601.gappssmtp.com; s=20230601; t=1770776456; x=1771381256; 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=3wCcBHsr4Uji4qqJCqhFZkc8S1LuJex4vz87CBE8FEM=; b=HClJQGQcOM2R2sJURWiF9MrjxVPrddG8zil2Q1tJu0TKHQau+GP+ake3R6gQW02bRe s49npc0cMMXUiMZYhlPpsTmvr78TV0KHcxWKsPeD3yXDkCEGZwLWOUrK8ts4T9bFbexN OssyziCpHu969iPiqkKTA7e6TAOQIOwBcsOYivuavHkFcVgHIryIVEGo4tcy1Q9Q/63L okTwXFAHMCNqkOBcsNnbJr9+bE9AR93uw8PpTVztgecOin37KEjtADa3LEOzxI2+wZAc qUHsuU7dnHlRvud3A9C48AFXdGodJGtcoBCFmIUddbYH0fzM38WPYW+7un3sE1W+OKdu SYqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770776456; x=1771381256; 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=3wCcBHsr4Uji4qqJCqhFZkc8S1LuJex4vz87CBE8FEM=; b=mZ9KVgfbeBG/1/F4grvjF52INFm7oc/Qdc5qEzE3Dva2jRT53mmC5Gn/nE3hjWDRaa imbBSRvWw2fFzJeYOZS1a2t9EL5CnTS92cJvWgH3t/Q7bbXoN35JP9KP1VUbXXNiSt0u uVQoOTJShJMRrNUHl41wJox+vktltvtRp9/kbFapWTCV32DE+JFauRQ7kiZOt+b8/zuT TvQ6fWgh+tRQ6K7uW57oYJfsiyWarz5vg72nhtZc+VQKxidgSaz8k5dThf3+SqTNcbnL 5eQIHV+wYp0qd/dsFgXCsepdq0nBtCaZXcbc1I9E/UdkQQtV4c8F1XIRnvK7wrmEimZa xGEg== X-Forwarded-Encrypted: i=1; AJvYcCVGqxkqKajC5KdZH6DqJmCiOmQByMZV4omUOCKyPtSYYqazR9QdoyK5kfCYbvdef6/Da7VknrFiU5SkW8w=@vger.kernel.org X-Gm-Message-State: AOJu0YxIwsyYNEH6XwIPBLyvccHzE+Tzb6aJ37Si/XIHT+kae9o2yA85 xSwHd6xN1E397dOgZLYpm0qvSHzmmxMyZ9ychT0wDyi6hCN0wkSqSwoP7B8+9Kaoqjs= X-Gm-Gg: AZuq6aKWWxJexmnOT/Pl7Or3TgUOeslNmcEeUlFKsuQcANHeuZ7CNTcVope4YT3rSS5 xiThHzqi+wHIRzQebr1ayAy//R8dcUBkNDaTsYW9y6rcA2E0QHLx869inBm5n4v8skmVHRpDK3+ b6iSTNsvuDlSfPDrh8hjrlHok52xMf4KwfAQcRSE2SMYsUkz1LXrBps3+J2o3xYJMQrMg/C9Au0 n3MxpxMKvBegQ07+yDLr29QWTV6EMxgSUYvhtqGlJPfIwgQhMz+i+xWrtffjDQ5dlnsIVgcoP32 CvPXJJF/UDM4nilyNuA14Q+31ymYgjtJHp+QvmdogDlXlaMmhWmDhyAkQknrkLUISXOlXib6WEW AJJMqDpkPeDDCw/0mjPKZgUKgmc2hLWflkL/mZwqmkyTsY+9zyO2xHoZvd31zEpNzauo1zwDOpu nZr4S52+B8CV520RBvW45cM1DXSA719O0Nn3FYbod0v3BcQhLm/WX/40VkDKGX7jIrfS6IBJUCx eNN2eT2tf1XqhDS0sdA4TGNS0x4mHZIc2rtnfhqwA3Sf0jTxY38ag== X-Received: by 2002:a05:620a:4502:b0:8c7:1118:c514 with SMTP id af79cd13be357-8cb2a2bd947mr36446385a.17.1770776455955; Tue, 10 Feb 2026 18:20:55 -0800 (PST) Received: from security.cs.northwestern.edu (security.cs.northwestern.edu. [165.124.184.136]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cb2b0ce73fsm15817385a.11.2026.02.10.18.20.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Feb 2026 18:20:54 -0800 (PST) From: Ziyi Guo To: Jan Kara Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, Ziyi Guo Subject: [PATCH] ext2: avoid drop_nlink() during unlink of zero-nlink inode in ext2_unlink() Date: Wed, 11 Feb 2026 02:20:52 +0000 Message-Id: <20260211022052.973114-1-n7l8m4@u.northwestern.edu> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" ext2_unlink() calls inode_dec_link_count() unconditionally, which invokes drop_nlink(). If the inode was loaded from a corrupted disk image with i_links_count =3D=3D 0, drop_nlink() triggers WARN_ON(inode->i_nlink =3D=3D 0) Follow the ext4 pattern from __ext4_unlink(): check i_nlink before decrementing. If already zero, skip the decrement. Signed-off-by: Ziyi Guo --- fs/ext2/namei.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index bde617a66cec..c746cf169a4d 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c @@ -293,7 +293,10 @@ static int ext2_unlink(struct inode *dir, struct dentr= y *dentry) goto out; =20 inode_set_ctime_to_ts(inode, inode_get_ctime(dir)); - inode_dec_link_count(inode); + + if (inode->i_nlink) + inode_dec_link_count(inode); + err =3D 0; out: return err; --=20 2.34.1