Subject: bug#6131: [PATCH]: fiemap support for efficient sparse file copy

From: "jeff.liu" <[email-masked]>
Date: Wed, 26 Jan 2011 11:58:38 +0800

Jim Meyering wrote:
> jeff.liu wrote:
>> Jim Meyering wrote:
>>> jeff.liu wrote:
>>>> AFAICS, the tests passed on all filesystems except ext4,
>>> Really?
>>> The vast majority of my testing is with ext4 on Fedora 14, and I have seen
>>> no failure -- otherwise I would have mentioned that as a known problem.
>> I have mentioned this issue at:
>> http://osdir.com/ml/bug-coreutils-gnu/2010-09/msg00092.html
>>
>> "make test against cp/sparse-fiemap failed at the extent compare
>> stage, but the file content is
>> identical to each other by comparing those two files "j1/j2" manually.
>> Is it make sense if we verify them through diff(1) since the testing
>> file is in small size?"
> 
> No.  The whole point of the test is to verify that the extents have
> been preserved in the copy.  Diff doesn't know about extents.
> 
>>> What type of system/kernel are you using?
>> 2.6.33-RC3 && 2.6.36
>>> Was your ext4 partition created long ago?  With what options?
>> fiemap copy works well if run `cp' against physical ext4 partition.
>>> Did "make check" fail?  If so, please provide details.
>> Yeah, I will show the detail of 'make check' at below.
> 
> What version of filefrag are you using?
Mine comes from E2fsprogs version 1.41.12 shipped with ubuntu8.0.4.
I updated the filefrag(8) to the upstream one but still no luck. :(
the kernel I have tried are 2.6.28/2.6.33-RC3/2.6.36.

> Mine comes from e2fsprogs-1.41.12-6.fc14.x86_64
> 
>> btw, I just checked out the new branch and tried to compile it but ran
>> into an error:
>> date.c:30:28: error: parse-datetime.h: No such file or directory
>> date.c: In function 'batch_convert':
>> date.c:284: warning: implicit declaration of function 'parse_datetime'
>>
>> I guess 'parse-datetime.h' is shipped with gnulib? For now, I can not
>> pull the latest gnulib code
>> since the remote host does not response.
> 
> Did you run ./bootstrap ?
sure, yesterday it failed due to my proxy issue.

Thanks,
-Jeff
> That is a requirement whenever the coreutils
> pulls in a change to the gnulib submodule.
> 
>> For a quick reply, I ran 'make check' against the previous code base
>> before your latest commit.
>>
>> sudo make check TESTS=cp/sparse-fiemap VERBOSE=yes
> ...
>> + filefrag -v j2
> ...
>> + awk '/^ *[0-9]/ {printf "%d %d ", $2 ,NF < 5 ? $NF : $5 } END {print ""}'
>> @a and @b have different lengths, even after adjustment
>> + fail=1
> 
> 
>