Commit 6ed858c7 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: drop compatibility minimum log size computations for reflink

Let's also drop the oversized minimum log computations for reflink and
rmap that were the result of bugs introduced many years ago.
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarAllison Henderson <allison.henderson@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 7ea816ca
...@@ -24,6 +24,11 @@ ...@@ -24,6 +24,11 @@
* because that can create the situation where a newer mkfs writes a new * because that can create the situation where a newer mkfs writes a new
* filesystem that an older kernel won't mount. * filesystem that an older kernel won't mount.
* *
* Several years prior, we also discovered that the transaction reservations
* for rmap and reflink operations were unnecessarily large. That was fixed,
* but the minimum log size computation was left alone to avoid the
* compatibility problems noted above. Fix that too.
*
* Therefore, we only may correct the computation starting with filesystem * Therefore, we only may correct the computation starting with filesystem
* features that didn't exist in 2023. In other words, only turn this on if * features that didn't exist in 2023. In other words, only turn this on if
* the filesystem has parent pointers. * the filesystem has parent pointers.
...@@ -80,6 +85,15 @@ xfs_log_calc_trans_resv_for_minlogblocks( ...@@ -80,6 +85,15 @@ xfs_log_calc_trans_resv_for_minlogblocks(
{ {
unsigned int rmap_maxlevels = mp->m_rmap_maxlevels; unsigned int rmap_maxlevels = mp->m_rmap_maxlevels;
/*
* If the feature set is new enough, drop the oversized minimum log
* size computation introduced by the original reflink code.
*/
if (xfs_want_minlogsize_fixes(&mp->m_sb)) {
xfs_trans_resv_calc(mp, resv);
return;
}
/* /*
* In the early days of rmap+reflink, we always set the rmap maxlevels * In the early days of rmap+reflink, we always set the rmap maxlevels
* to 9 even if the AG was small enough that it would never grow to * to 9 even if the AG was small enough that it would never grow to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment