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

Ted Ts'o
2011-04-19T15:57:58Z

On Tue, Apr 19, 2011 at 09:13:19AM -0500, Eric Sandeen wrote:
>
> But I too am confused about Dave's assertion that it only reflects ondisk state when we have that pesky delalloc flag.
>
> Whose idea was that, anyway? ;)
>
> I'd certainly buy the argument that it -should- only reflect ondisk state, and we should nuke the delalloc flag from orbit, if we could, though.

I see three options of how we can clarify FIEMAP's semantics:

1) We define it as only reflecting ondisk state, and nuke the delalloc
flag from orbit.

2) We state that if the file is currently has unflushed pages in the
page cache, and FIEMAP_FLAG_SYNC is not passed, whether or not extents
return the DELALLOC flag or how they handle the UNWRITTEN flag is
undefined.

3) We state that FIEMAP is supposed to return information which
reflects the union of the on-disk and page cache state, with all that
this implies.

All of these are internally consistent definitions --- we need to
chose one, document, and then tell the shellutils folks what they
should do.

In the case of #1 and #2, we really need to implement support for
SEEK_HOLE/SEEK_DATA for userspace programs like cp who want to know
this information.

Do we all agree on the problem statement, at least? If so, then we
can try to come consensus on what is the appropriate solution.

- Ted