mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
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: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
7ea816ca40
commit
6ed858c7c6
@ -24,6 +24,11 @@
|
||||
* because that can create the situation where a newer mkfs writes a new
|
||||
* 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
|
||||
* features that didn't exist in 2023. In other words, only turn this on if
|
||||
* the filesystem has parent pointers.
|
||||
@ -80,6 +85,15 @@ xfs_log_calc_trans_resv_for_minlogblocks(
|
||||
{
|
||||
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
|
||||
* to 9 even if the AG was small enough that it would never grow to
|
||||
|
Loading…
Reference in New Issue
Block a user