From nobody Sat Jul 25 21:59:22 2026 Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) (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 45F7D26ED59 for ; Mon, 13 Jul 2026 06:42:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=162.62.58.211 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783924935; cv=none; b=TEk+BcWU9FarcJWTc/csPktUqP2kpWXT3+wucmKbBTki1WH+/Mtc9Yx8j7HY1/+sntSWYcUa7OPQcAScgEYuhTKmTU+5sCxotx8VDT2zxc7YJR8Bmx+pbqsGYUByW+1bWyBRKCJX0T9/xRiASpKb9rB757+HnY46+WtV+1ngIzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783924935; c=relaxed/simple; bh=e4s6N0eMyA7pvm+iVJbW+atU//nM3ScKsKr8/3DbMCw=; h=Message-ID:From:To:Cc:Subject:Date:MIME-Version; b=aVWDrykSli2eAS12nNIo6T88bfupr8sRCaY9WQ5Ywgq4naBoxTSAmyhzcsBcoC6RX0NH67KiVq0KHB9CAC8OjmHUITpDGLiaLQT0aMO0c0n8lCC0QJ6VFtxLgE2cW3OT5KM7Yjsphdd5226bepK5/AlxlmT8rUHtA+MPz+bDGOY= 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=kjJQcYcA; arc=none smtp.client-ip=162.62.58.211 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="kjJQcYcA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1783924922; bh=yoCirpgF5yJFDuc8ug5Xvs+Xu7s9msMVyMvPkGgdR6k=; h=From:To:Cc:Subject:Date; b=kjJQcYcA/IjJ2ZgLTHvvoFV4hW5YZJPWAIdcBgc/sGdWXNrKR2BL1GNnQxy8cV3fK kye0jeJCcUXsv+uvl9KIlakFHNkSHxiwcLq+ZomcXYL2hls4jQ4OkqLXQbXXuWyj54 1stU/AjeYTc2i/2hrCp79hpnSv9Rafc8H+ku4+bU= Received: from ikun ([221.176.157.250]) by newxmesmtplogicsvrszb51-0.qq.com (NewEsmtp) with SMTP id A2CAA6BE; Mon, 13 Jul 2026 14:40:44 +0800 X-QQ-mid: xmsmtpt1783924844ts8dahirg Message-ID: X-QQ-XMAILINFO: NPa98HB0c72NZJ1Rar8ja3szPOtat+r0stdIyX6H/HXCww/+92Vu4zos9B4urB OqBSy5ErhzkarUQVo99g3s39iYj9rO9YQhPFXo7w2/t+opCoto2gtHzKhhHvgxeVsHAiXpye8/BY Sz20bcsfA0KL53Y1+eczy9wuzdjiXTQPmMl0bIp3cda3PXrdpAKFL+nCcJwUb3ynVZMFruUxGTnQ rLC86KJJHQic57hj5maAOkmEekI2vXM9imSzRAK5tRD3ApTDUHYyb7ip+aMFNKBnvFyfpqCVe3zd ZAtEndT0axQK21yaoixII/arMzpMh1mfH2gcv9qAwsqAOQzMiVmir1nLGUSQwDOdoqUWqs1g49/q 94n4rKCh8nrUNvgaY60VyGlln+hzdAHImmOg32VDNTLkQkFE5gY5ErDGSRJ4AFxg6KpeC2ZxwUmW XRJeRsvASNr84NzQ5lqGTB1u1mXtTHC13qYNE5QZxkamdSrV1wuQ7b7/cj3LknjJ4/J4/En9lP2V yLsCAxEKp0ehhEDampK/2u63vfz9+u1zMeDsbLTauQt2AcHVYkswyOVlyMcxd++iRN/7TLMLzxt8 zoFiwjNxcCrfB7u2Eh8iheS5qMrbL6iZwankOOZV7UPmixBAVVwX0axm3GPRED4pDUeYgF9N8jqv hONaRtfqUmPEXcQGy8/mZxL2AsVtf94OMhQsEQ5y5dXNd7w71B64HMatcfBiX/65W8K0ym5Z9hVG Wfq0ePeXYWR5l65ghltyjB0242EPao8pzSfuGaKcAYm8JIOsHJuI13GVjhOsQaQa9PnCYK2iRoi8 ST1OE2SOuY8elUJNe2r45snY5QQkLqtclnRHPnlrxwFIOjPhtG5lTEmb+N+8ra7cYJQXvccxhwcJ GNtf6Xm69p9SuUzZiM06ZioWY6qSOWbOlLuZrNPCn6QUR4zL2rSQyYI1EZmy2JIZDTUv7XuA8xZb PdhHavoWzuZDtIyXyD7dFpQ3BpaXchAJ75z5XBNcg158cubiITuz3bfWPKdPtqXk5itocvmOnPye 11+os/hskJT7A4fFoENKCxFvtSMQNpDb+raBGRsys7YRfLHMFDJgxFAtnSigE= X-QQ-XMRINFO: Nq+8W0+stu50tPAe92KXseR0ZZmBTk3gLg== 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_move_inline_dirents Date: Mon, 13 Jul 2026 14:40:43 +0800 X-OQ-MSGID: <20260713064043.1837-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_move_inline_dirents() documents that the caller grabs ifolio, and that the function should release it on any error. The f2fs_grab_cache_folio() failure path already drops ifolio, but the f2fs_reserve_block() failure path only drops the newly grabbed folio at the shared out label. If f2fs_reserve_block() fails before clearing dn.inode_folio, the caller's ifolio reference is left behind. Release ifolio on this error path when dn.inode_folio is still set. Signed-off-by: Guanghui Yang <3497809730@qq.com> --- fs/f2fs/inline.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index e2f7bedf1552..dea4ab957de8 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c @@ -427,8 +427,11 @@ static int f2fs_move_inline_dirents(struct inode *dir,= struct folio *ifolio, =20 set_new_dnode(&dn, dir, ifolio, NULL, 0); err =3D f2fs_reserve_block(&dn, 0); - if (err) + if (err) { + if (dn.inode_folio) + f2fs_folio_put(ifolio, true); goto out; + } =20 if (unlikely(dn.data_blkaddr !=3D NEW_ADDR)) { f2fs_put_dnode(&dn); base-commit: a13c140cc289c0b7b3770bce5b3ad42ab35074aa --=20 2.52.0.windows.1