On Tue, 03 Sep 2024 08:47:13 -0400, Brian Foster wrote: > The background blockgc scanner runs on a 5m interval by default and > trims preallocation (post-eof and cow fork) from inodes that are > otherwise idle. Idle effectively means that iolock can be acquired > without blocking and that the inode has no dirty pagecache or I/O in > flight. > > This simple mechanism and heuristic has worked fairly well for > post-eof speculative preallocations. Support for reflink and COW > fork preallocations came sometime later and plugged into the same > mechanism, with similar heuristics. Some recent testing has shown > that COW fork preallocation may be notably more sensitive to blockgc > processing than post-eof preallocation, however. > > [...] Applied to for-next, thanks! [1/1] xfs: skip background cowblock trims on inodes open for write commit: 90a71daaf73f5d39bb0cbb3c7ab6af942fe6233e [2/2] xfs: don't free cowblocks from under dirty pagecache on unshare commit: 4390f019ad7866c3791c3d768d2ff185d89e8ebe Best regards, -- Carlos Maiolino <cem@xxxxxxxxxx>