+++ /dev/null
-From 66977ac3c7dedd8c2ef9cffc182e7b316e475bb6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 7 Jul 2025 22:08:10 +0800
-Subject: ext4: correct the reserved credits for extent conversion
-
-From: Zhang Yi <yi.zhang@huawei.com>
-
-[ Upstream commit 95ad8ee45cdbc321c135a2db895d48b374ef0f87 ]
-
-Now, we reserve journal credits for converting extents in only one page
-to written state when the I/O operation is complete. This is
-insufficient when large folio is enabled.
-
-Fix this by reserving credits for converting up to one extent per block in
-the largest 2MB folio, this calculation should only involve extents index
-and leaf blocks, so it should not estimate too many credits.
-
-Fixes: 7ac67301e82f ("ext4: enable large folio for regular file")
-Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
-Reviewed-by: Jan Kara <jack@suse.cz>
-Reviewed-by: Baokun Li <libaokun1@huawei.com>
-Link: https://patch.msgid.link/20250707140814.542883-8-yi.zhang@huaweicloud.com
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ext4/inode.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
-index be9a4cba35fd..91da3ae0bbc6 100644
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -2771,12 +2771,12 @@ static int ext4_do_writepages(struct mpage_da_data *mpd)
- mpd->journalled_more_data = 0;
-
- if (ext4_should_dioread_nolock(inode)) {
-+ int bpf = ext4_journal_blocks_per_folio(inode);
- /*
- * We may need to convert up to one extent per block in
-- * the page and we may dirty the inode.
-+ * the folio and we may dirty the inode.
- */
-- rsv_blocks = 1 + ext4_chunk_trans_blocks(inode,
-- PAGE_SIZE >> inode->i_blkbits);
-+ rsv_blocks = 1 + ext4_ext_index_trans_blocks(inode, bpf);
- }
-
- if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
---
-2.39.5
-