On Wed, Feb 27, 2019 at 05:02:04PM -0500, Eric Whitney wrote: > Ext4 may not free clusters correctly when punching holes in bigalloc > file systems under high load conditions. If it's not possible to > extend and restart the journal in ext4_ext_rm_leaf() when preparing to > remove blocks from a punched region, a retry of the entire punch > operation is triggered in ext4_ext_remove_space(). This causes a > partial cluster to be set to the first cluster in the extent found to > the right of the punched region. However, if the punch operation > prior to the retry had made enough progress to delete one or more > extents and a partial cluster candidate for freeing had already been > recorded, the retry would overwrite the partial cluster. The loss of > this information makes it impossible to correctly free the original > partial cluster in all cases. > > This bug can cause generic/476 to fail when run as part of > xfstests-bld's bigalloc and bigalloc_1k test cases. The failure is > reported when e2fsck detects bad iblocks counts greater than expected > in units of whole clusters and also detects a number of negative block > bitmap differences equal to the iblocks discrepancy in cluster units. > > Signed-off-by: Eric Whitney <enwlinux@xxxxxxxxx> Thanks, applied. - Ted