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 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs