[Top] [All Lists]

Re: Files full of zeros with coreutils-8.11 and xfs (FIEMAP related?)

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: Files full of zeros with coreutils-8.11 and xfs (FIEMAP related?)
From: Andreas Dilger <adilger@xxxxxxxxx>
Date: Fri, 15 Apr 2011 16:28:37 -0600
Cc: Eric Blake <eblake@xxxxxxxxxx>, Jim Meyering <jim@xxxxxxxxxxxx>, Eric Sandeen <sandeen@xxxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>, coreutils@xxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>
In-reply-to: <20110415172603.GA20086@xxxxxxxxxxxxx>
References: <20110414120635.GB1678@xxxxxxxxxxxxxx> <20110414140222.GB1679@xxxxxxxxxxxxxx> <4DA70BD3.1070409@xxxxxxxxxxxxxx> <4DA717B2.3020305@xxxxxxxxxxx> <20110414225904.GK21395@dastard> <4DA7836A.5040604@xxxxxxxxxxxxxx> <20110415000940.GL21395@dastard> <87sjtjq4ir.fsf@xxxxxxxxxxxxxxxx> <20110415171629.GA9088@xxxxxxxxxxxxx> <4DA87F43.5040807@xxxxxxxxxx> <20110415172603.GA20086@xxxxxxxxxxxxx>
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 

Cheers, Andreas

<Prev in Thread] Current Thread [Next in Thread>