Joerg Schilling <joerg.schill...@fokus.fraunhofer.de> writes:

> Mark H Weaver <m...@netris.org> wrote:
>
>> > Now many bytes have been written past the hole?
>>
>> Did you read my entire message?  The answer to your question was just a
>> few lines beyond the excerpt that you quoted above.  I wrote:
>>
>> >> Yes, on Btrfs I reliably see (st_blocks == 0) on a recently written,
>> >> mostly sparse file with size > 8G, using linux-libre-4.14.14.  More
>> >> specifically, the "storing sparse files > 8G" test in tar's test suite
>> >> reliably fails on my system:
>> >> 
>> >>   140: storing sparse files > 8G                       FAILED 
>> >> (sparse03.at:29)
>> >> 
>> >> The test creates a sparse file consisting of 8 gibibytes of hole
>> >> followed by 512 bytes of 'A's at the end.  [...]
>
> Sorry, I did not see this.
>
> Well then it would be of interest whether btrfs is able to keep 512 bytes of 
> data in the meta data space.

A hypothetical file system might store the entire file contents
*compressed* in the inode.  Large holes might be stored quite compactly
in such a scheme.  It's not hard to imagine a realistic compression
method that could successfully store 8 gigibytes of zeroes followed by
512 bytes of 'A's, completely within the inode.

In such a file system, even in the absence of delayed allocation,
(st_blocks == 0) would be justifiable, no?

       Mark

Reply via email to