From nobody Sat Jul 25 21:59:14 2026 Received: from out203-205-221-239.mail.qq.com (out203-205-221-239.mail.qq.com [203.205.221.239]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 019E219C54E for ; Mon, 13 Jul 2026 06:04:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.205.221.239 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783922665; cv=none; b=hOtjROm1mKSKyAJ1zGG5piy9klOE70ojZfj94UJBgpqye3fbx8gGXg+M3W3DaIe2REaJHOL61LIY+lDA7huEpNr5Fmv6GkFg75hM3tp7ZR+s/aGWzevBZ/Y2s7rgI7WY4yzSkTTW7+OnxCHL329BCEnJ1ETDgygm0AHWvJxhxKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783922665; c=relaxed/simple; bh=K8zMfRV9U7W1WLdJw8bVZME9zHL9/8OEOqBXqKD6oBo=; h=Message-ID:From:To:Cc:Subject:Date:MIME-Version; b=Hgr8g5RmgzrgSWotZAs+mvLEYL7XbL0PvFbP94tdE9roeuKaCZCVezVI6I6gW8r3FAm0Hj/2Hv57OH2W4/U4p5VI6EEA3BZoJJABdGqWxtxjR6fDQG4wBMpQLrZbhz8Isrt87ff0NqJmAsbrVOZsKmVA1re+F5+Z2/YUICWZbC4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com; spf=pass smtp.mailfrom=qq.com; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b=KQ3gxIwa; arc=none smtp.client-ip=203.205.221.239 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=qq.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b="KQ3gxIwa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1783922654; bh=fPnUTBnX9rEUlFodo3utzbAQ5Y2INf72HuDM7nHGsLM=; h=From:To:Cc:Subject:Date; b=KQ3gxIwaqyeyCh+PR3AxogLzEb60CSV1sBYqbgCENkzuFg/CoY53kG3m5/x+1XOzs jQ9CIsLdtOqgxEbEMMEPprNW744nHYJNXd/4WsN57R3oPuW6QoQK147dV0eOmZbYwZ bY8tXSQEyoA3jGGi/9wFEvw/zP9gELtn/MdsWvT4= Received: from ikun ([221.176.157.250]) by newxmesmtplogicsvrsza73-0.qq.com (NewEsmtp) with SMTP id A7374EB; Mon, 13 Jul 2026 14:02:39 +0800 X-QQ-mid: xmsmtpt1783922559tbrq6dkau Message-ID: X-QQ-XMAILINFO: NVJ0hJNx7N5SXgPSVEYKvnhA1jm6i3a0BfEJEoRmvuWlYtYNoiTmODQhO4/YlG DcqAd18pnmdNL7MOyzIgWyapmCOqjmNx0jsxy9S9sJW2nC7ClMG0dDQvUaqI9fzA+rW+WsYoTzm1 hFDaaVVD3kByE2DnM8LdO2J/ZPPhpVWJhMHyvsE4v6riQur/Ll2HgkpI9yH0Or6cH6wuibpb9lR5 61/zKYU6PF4c7PFczix9WTNDQmxbutB26yH1Eflkh9Di6K4FoF8fbMxkSpB8RNYlF4+mosUPJTFg XJ2pavgdNvUO2bICkdkQUOOxtFz6KQZtuRAIST1jpWJtf+Uq+JDX2EOdUbtFro7ceRSnEB4DZBAb L6183O3loblS0+ZnClcblBkn8LMOMgR8D8P2mZc6xS0mFy30lQu1Z/+JGgz15deiNinMw28IoVjW 7x8+EjQZ4goLLAZGlZQ4ig9GirZkNDIn3aCHHbEZmQUnj+97vAUgCjfYojwh4GqsMh0pU2RM7JM6 ff/swKvor0QeP4AiZnAKxHve4KwowwkN7z2TCdiuRXiKFH8V1/umwVDg+9+LR0mEIsLnZxBJpLon s9sEZZ2qBeEQDN8N0KLtmOWQvusgXQbSeSSqvugRFkVmywb68yuzB5dQMujtM1zVze+fLZk63mKh xFNfM45ZM5uMry7RXFjWMHXh+xGjKYzgqDYVZU8Zo6UnqwvAeEq9a/Qi4uQsgIwFMQ4d3A28GMkc Nb2DkabSc+4sYyN21q78jOhQWG0FwPI0prWWD2EPGMe/8AKhygNGpm4sJVHf30KkGd9uEVLM1vfB 6qZLZo0aWv5G/TGwEVe2I/3wj9GhXEsV6zJXncQGmdrtqX1UEFYYvzA2DCaH9QOwVnwug+4nTBxY nOoWnjnw1+brezWpC5lH2Lp3prumMsAsI42xzZhhwKpi4Z7VUVFse7aTqwdqnbLTUt0ESo6oxuqc Jt+Jiqb15LJqf25mQkyYgS54VOZVmUVOWw5ZDmY+PbpIF5odN486Qr+APFl5NPMWfwpcy8H+POts nY0Ifx2EjfAX6PG2bFJZ/54Kho+Bg= X-QQ-XMRINFO: M/715EihBoGS47X28/vv4NpnfpeBLnr4Qg== From: Guanghui Yang <3497809730@qq.com> To: Jaegeuk Kim Cc: Chao Yu , linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Guanghui Yang <3497809730@qq.com> Subject: [PATCH] f2fs: fix ifolio leak in f2fs_get_new_data_folio Date: Mon, 13 Jul 2026 14:02:37 +0800 X-OQ-MSGID: <20260713060237.548-1-3497809730@qq.com> X-Mailer: git-send-email 2.52.0.windows.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" f2fs_get_new_data_folio() documents that ifolio is only set by make_empty_dir(), and that ifolio should be released by this function on any error. The allocation failure path already follows this rule, but the f2fs_reserve_block() failure path only drops the newly grabbed folio and returns the error. When make_empty_dir() passes a non-NULL ifolio, this leaves the extra inode folio reference held by the caller. Release ifolio before returning from the f2fs_reserve_block() failure path. Signed-off-by: Guanghui Yang <3497809730@qq.com> --- fs/f2fs/data.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index a765fda71536..e66aefc573d9 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1477,6 +1477,7 @@ struct folio *f2fs_get_new_data_folio(struct inode *i= node, err =3D f2fs_reserve_block(&dn, index); if (err) { f2fs_folio_put(folio, true); + f2fs_folio_put(ifolio, true); return ERR_PTR(err); } if (!ifolio) base-commit: a13c140cc289c0b7b3770bce5b3ad42ab35074aa --=20 2.52.0.windows.1