mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
ddb4e4cfcc
Test several cases of cloning inline extents that used to lead to file corruption or data loss. These file corruption and data loss cases are fixed by the linux kernel patch titled: "Btrfs: fix file corruption and data loss after cloning inline extents" Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
258 lines
8.3 KiB
Plaintext
258 lines
8.3 KiB
Plaintext
QA output created by 112
|
|
|
|
Testing without compression and without the no-holes feature...
|
|
|
|
wrote 50/50 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 16384/16384 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo data after clone operation:
|
|
0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
|
|
*
|
|
0040000
|
|
wrote 100/100 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 12288/12288 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo2 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0010000 dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd
|
|
*
|
|
0040000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
First 50 bytes of foo3 after clone operation:
|
|
0000000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 40/40 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File foo4 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 60/60 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo5 data after clone operation:
|
|
0000000 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
|
*
|
|
0000060 03 03 03 03 03 03 03 03 03 03 03 03
|
|
0000074
|
|
clone failed: Operation not supported
|
|
File foo6 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0040000
|
|
File foo7 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 20/20 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo8 data after clone operation:
|
|
0000000 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
|
|
0000020 88 88 88 88
|
|
0000024
|
|
|
|
Testing with compression and without the no-holes feature...
|
|
|
|
wrote 50/50 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 16384/16384 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo data after clone operation:
|
|
0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
|
|
*
|
|
0040000
|
|
wrote 100/100 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 12288/12288 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo2 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0010000 dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd
|
|
*
|
|
0040000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
First 50 bytes of foo3 after clone operation:
|
|
0000000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 40/40 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File foo4 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 60/60 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo5 data after clone operation:
|
|
0000000 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
|
*
|
|
0000060 03 03 03 03 03 03 03 03 03 03 03 03
|
|
0000074
|
|
clone failed: Operation not supported
|
|
File foo6 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0040000
|
|
File foo7 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 20/20 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo8 data after clone operation:
|
|
0000000 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
|
|
0000020 88 88 88 88
|
|
0000024
|
|
|
|
Testing without compression and with the no-holes feature...
|
|
|
|
wrote 50/50 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 16384/16384 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo data after clone operation:
|
|
0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
|
|
*
|
|
0040000
|
|
wrote 100/100 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 12288/12288 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo2 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0010000 dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd
|
|
*
|
|
0040000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
First 50 bytes of foo3 after clone operation:
|
|
0000000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 40/40 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File foo4 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 60/60 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo5 data after clone operation:
|
|
0000000 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
|
*
|
|
0000060 03 03 03 03 03 03 03 03 03 03 03 03
|
|
0000074
|
|
clone failed: Operation not supported
|
|
File foo6 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0040000
|
|
File foo7 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 20/20 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo8 data after clone operation:
|
|
0000000 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
|
|
0000020 88 88 88 88
|
|
0000024
|
|
|
|
Testing with compression and with the no-holes feature...
|
|
|
|
wrote 50/50 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 16384/16384 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo data after clone operation:
|
|
0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
|
|
*
|
|
0040000
|
|
wrote 100/100 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 12288/12288 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo2 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0010000 dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd
|
|
*
|
|
0040000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
First 50 bytes of foo3 after clone operation:
|
|
0000000
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 40/40 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File foo4 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 90/90 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 60/60 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo5 data after clone operation:
|
|
0000000 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
|
*
|
|
0000060 03 03 03 03 03 03 03 03 03 03 03 03
|
|
0000074
|
|
clone failed: Operation not supported
|
|
File foo6 data after clone operation:
|
|
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
*
|
|
0040000
|
|
File foo7 data after clone operation:
|
|
0000000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
|
|
*
|
|
0000060 bb bb
|
|
0000062
|
|
wrote 20/20 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
clone failed: Operation not supported
|
|
File foo8 data after clone operation:
|
|
0000000 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
|
|
0000020 88 88 88 88
|
|
0000024
|