FAILED: patch "[PATCH] xfs: reduce new btree slack factor if free space is negative" failed to apply to 6.12-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 6.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.12.y
git checkout FETCH_HEAD
git cherry-pick -x 80f13dc7225eec318da7499c7a562d7a34d25e6a
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026110420-rocklike-immovable-51bc@gregkh' --subject-prefix 'PATCH 6.12.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 80f13dc7225eec318da7499c7a562d7a34d25e6a Mon Sep 17 00:00:00 2001
From: "Darrick J. Wong" <[email protected]>
Date: Mon, 12 Oct 2026 23:06:14 -0700
Subject: [PATCH] xfs: reduce new btree slack factor if free space is negative
LOLLM points out that if the incore fdblocks counter is negative, the assignment to uint64_t will mask this possibly low space situation and we don't pack the btree blocks as tightly as we probably ought to. If it's the case that there's some free space and fdblocks is too low due to an error in the superblock field, then we can end up failing btree rebuilds due to ENOSPC unnecessarily. This is a corner case, but let's fix it anyway.
fs/xfs/scrub/newbt.c +1 -1
@@ -71,7 +71,7 @@ xrep_newbt_estimate_slack( free = sc->sa.pag->pagf_freeblks; sz =xfs_ag_block_count (sc->mp,pag_agno (sc->sa.pag)); }else { - free =xfs_sum_freecounter_raw (sc->mp,XC_FREE_BLOCKS ); + free =xfs_sum_freecounter (sc->mp,XC_FREE_BLOCKS ); sz = sc->mp->m_sb.sb_dblocks; }
Sasha Levin
maintainerPATCH 1/1 xfs: reduce new btree slack factor if free space is negative
From: "Darrick J. Wong" <[email protected]>
[ Upstream commit 80f13dc7225eec318da7499c7a562d7a34d25e6a ]
LOLLM points out that if the incore fdblocks counter is negative, the assignment to uint64_t will mask this possibly low space situation and we don't pack the btree blocks as tightly as we probably ought to. If it's the case that there's some free space and fdblocks is too low due to an error in the superblock field, then we can end up failing btree rebuilds due to ENOSPC unnecessarily. This is a corner case, but let's fix it anyway.
--- fs/xfs/scrub/newbt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/xfs/scrub/newbt.c +1 -1
@@ -60,7 +60,7 @@ xrep_newbt_estimate_slack( free = sc->sa.pag->pagf_freeblks; sz =xfs_ag_block_count (sc->mp, sc->sa.pag->pag_agno); }else { - free =percpu_counter_sum (&sc->mp->m_fdblocks); + free =percpu_counter_sum_positive (&sc->mp->m_fdblocks); sz = sc->mp->m_sb.sb_dblocks; }
Signature · 1 line
2.53.0