On Mon, Apr 18, 2011 at 10:59:49PM -0400, Ted Ts'o wrote: > Maybe coreutils will need to use FIEMAP_FLAG_SYNC initially, since > it's the only way to guarantee correct behaviour for XFS. But I would > really rather that be the long-term way we leave things! As Eric pointed out both ext4 and XFS have the same behaviour when writing into unwritten extent. I think you are a bit confused because ext4 also got basic handling of delalloc extents wrong before commit 6d9c85eb700bd3ac59e63bb9de463dea1aca084c, which never was a problem with XFS. It would be nice if ext4 developers had sent the included regression test for xfs so that everyone could verify this behaviour, btw. To report written to but not synced unwritten extents properly we'd need to move fiemap away from the onðdisk state reporting done so far and do something that is purely in-memory. It would be doable by walking the pagecache and checking for the buffer unwritten flag in a loop over the pages, but I'm honestly not sure it's going to help much. In fact given that unwritten extent were specifically allocated before it doesn't seem like an overly smart idea to skip them in a copy - yes it will save space but it also undoes the previous explicit preallocation. If people want it they should rather add a new option to cp to turn zeroes into holes.
_______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs