Subject: cp (8.10) sparse handling fails on compressed btrfs (cp/fiemap-2)
From: Mike Frysinger <[email-masked]>
To: [email-masked]
Date: Mon, 7 Feb 2011 22:53:26 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

after upgrading from coreutils 8.9 to 8.10, the sparse handling in cp is 
silently breaking on btrfs filesystems with the compressed option enabled.  
using --sparse=never works fine, but "auto" or "always" tend to fail.  the 
cp/fiemap-2 test catches the issue nicely.

to reproduce (i'm using linux-2.6.37):
file=btrfs.img
mntp=/mnt/tmp/
dd if=/dev/zero of=$file bs=1M count=0 seek=1024
mkfs.btrfs $file 
mount -t btrfs -o compress $file $mntp
cd $mntp
tar xf ~/coreutils-8.10.tar.xz
cd coreutils-8.10/tests
./cp/fiemap-2

and this last test shows:
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/loop0   btrfs     1048576     20420    377028   6% /mnt/tmp
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.7598e-05 s, 0.0 kB/s
k k2 differ: byte 1, line 1
255+0 records in
255+0 records out
261120 bytes (261 kB) copied, 0.00310926 s, 84.0 MB/s
-mike