On Tue, Dec 7, 2010 at 11:29 AM, Chris Mason <chris.ma...@oracle.com> wrote:
> Excerpts from Mike Fedyk's message of 2010-12-07 14:16:55 -0500:
>> On Tue, Dec 7, 2010 at 10:44 AM, Chris Mason <chris.ma...@oracle.com> wrote:
>> > Excerpts from Tsutomu Itoh's message of 2010-12-07 02:59:52 -0500:
>> >> Hi,
>> >>
>> >> I think that the disk allocation size of each file becomes a monotone 
>> >> increase
>> >> when the file is made.
>> >> But, it sometimes return to 0.  Is it correct?
>> >
>> > Well, there's a window during the processing of delayed allocation where
>> > we don't have the bytes recorded as delalloc and we don't have the bytes
>> > recorded in the inode yet.  That's why they are showing up as zero.
>> >
>> > We don't call inode_add_bytes() until after we insert the extent, but we
>> > drop the delalloc byte count on the file before the IO is done.
>> >
>> > Fixing it will be a little tricky because all the extent accounting
>> > assumes the inode_add_bytes happens at extent insertion time.
>> >
>>
>> How does opening the inode with O_APPEND during this window know where
>> to write the bytes?  If it's a pointer/cursor to the EOF then that
>> size could be used during the window.  Is that right?
>
> This counter records the number of blocks allocated to the file, and
> reading it with ls -l or stat is somewhat racey by nature.  Most of the
> time its fine, btrfs just has a really big window where the results from
> ls -l seem wrong.
>

I see.  Is it using per-cpu vars or something similar?

> But, the counter really means nothing to the btrfs internals.  When we
> do file operations we go based on the extent pointers we find in the
> tree and i_size (i_size is strictly maintained).
>

Would it be too heavy of an operation to have stat walk the btrfs tree
to get its data?

> The incorrect results are confusing but they don't hurt the metadata
> itself.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to