GNU bug report logs -
#6131
[PATCH]: fiemap support for efficient sparse file copy
Previous Next
Reported by: "jeff.liu" <jeff.liu <at> oracle.com>
Date: Fri, 7 May 2010 14:16:02 UTC
Severity: normal
Tags: patch
Done: Jim Meyering <jim <at> meyering.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Pádraig Brady wrote:
> On 13/05/10 15:25, jeff.liu wrote:
>>
>> diff --git a/src/copy.c b/src/copy.c
>> index c16cef6..960e5fb 100644
>> --- a/src/copy.c
>> +++ b/src/copy.c
>> @@ -63,6 +63,10 @@
>>
>> #include <sys/ioctl.h>
>>
>> +#ifndef HAVE_FIEMAP
>> +# include "fiemap.h"
>> +#endif
>
> Is HAVE_FIEMAP ever defined anywhere?
> In future will we use this to check for <linux/fiemap.h> ?
I'll look.
> On 20/05/10 20:23, Jim Meyering wrote:
>>
>> diff --git a/tests/cp/sparse-fiemap b/tests/cp/sparse-fiemap
>> old mode 100644
>> new mode 100755
>> index f9d3a94..814d537
>> --- a/tests/cp/sparse-fiemap
>> +++ b/tests/cp/sparse-fiemap
>> @@ -28,8 +28,7 @@ cwd=`pwd`
>> cleanup_() { cd /; umount "$cwd/mnt"; }
>>
>> # Create an ext4 loopback file system
>> -dd if=/dev/zero of=blob bs=8192 count=1000 > /dev/null 2>&1 \
>> - || skip=1
>> +dd if=/dev/zero of=blob bs=8192 count=1000 || skip=1
>> mkdir mnt
>> mkfs -t ext4 -F blob ||
>> skip_test_ "failed to create ext4 file system"
>
> There is the unlikely combination of ext4 without fiemap support I think?
> If so then that dependency is worth a comment.
I don't know off hand.
Is there a shell-level way to test for that?
>> @@ -42,20 +41,15 @@ test $skip = 1 &&
>>
>> rm -f mnt/f
>>
>> -# Create a 2gb sparse file
>> -dd if=/dev/zero of=mnt/sparse bs=1k count=1 seek=2096128 > /dev/null 2>&1 || framework_failure
>> +# Create a 2TiB sparse file
>> +dd if=/dev/zero of=mnt/sparse bs=1k count=1 seek=2G || framework_failure
>
> If we don't need any actual data in the files then one could use:
> truncate -s 2TB mnt/sparse
>
> For my reference, I used TB rather than TiB because on ext3
> the limit is 0x1FEFF7FC000 (2194719883264)
> (0x1FF7FFFD000 (2196875759616) before 2.6.25)
Thanks.
For now I'll limit it to 1GiB using dd.
That gives a slightly less uniform input.
# Create a 1TiB sparse file
dd if=/dev/zero of=mnt/sparse bs=1k count=1 seek=1G || framework_failure
This bug report was last modified 14 years and 119 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.