Files full of zeros with coreutils-8.11 and xfs (FIEMAP related?)
Andreas Dilger
adilger at dilger.ca
Fri Apr 15 17:28:37 CDT 2011
On 2011-04-15, at 11:26 AM, Christoph Hellwig wrote:
> On Fri, Apr 15, 2011 at 11:24:19AM -0600, Eric Blake wrote:
>> Would it be worth borrowing from Solaris' semantics and adding SEEK_HOLE
>> and SEEK_DATA to lseek(2), as a higher level (less-detailed, but easier
>> to define and easier to use) interface for discovering the regions of a
>> file that only contain NUL bytes?
>
> Yes, I've already suggested that both in this thread and on IRC.
>
> For efficient copies it's the only usable interface.
I suspect that these bugs would have still existed whether the interface is SEEK_HOLE/SEEK_DATA, or FIEMAP. The main problem is that the delalloc pages were not accounted for correctly during layout traversal.
For ext4 I think it is sufficient to add another case to ext4_ext_fiemap_cb() to check the pagecache for unmapped pages when it finds an uninitialized extent on disk. This will be very similar to the fix for finding holes in the on-disk mapping.
Cheers, Andreas
More information about the xfs
mailing list