mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
c684b203d1
We have a bug in the current kernel merge window (for 5.7) that results
in data loss when cloning an inline extent into a new file (or an empty
file. This change adds a test for such case into the existing test case
btrfs/205, because it's the test case that tests all the supported
scenarios for cloning inline extents in btrfs.
Linux kernel commit 4fdb688c7071 ("btrfs: fix lost i_size update
after cloning inline extent") fixes the regression.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
274 lines
11 KiB
Plaintext
274 lines
11 KiB
Plaintext
QA output created by 205
|
|
|
|
Testing with defaults
|
|
|
|
Creating file foo1
|
|
wrote 4096/4096 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 126976/126976 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar1
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into the end of bar1
|
|
linked 131072/131072 bytes at offset 131072
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
Creating file foo2
|
|
wrote 1000/1000 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 61440/61440 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar2
|
|
wrote 65536/65536 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the end of bar2
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar3
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the middle of bar3
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar4
|
|
wrote 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar4
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar5
|
|
Cloning foo1 into bar5
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar6
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar6
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file foo3
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo3 into bar7
|
|
linked 0/0 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
File digests after mounting again the filesystem:
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
|
|
Testing with -o compress
|
|
|
|
Creating file foo1
|
|
wrote 4096/4096 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 126976/126976 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar1
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into the end of bar1
|
|
linked 131072/131072 bytes at offset 131072
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
Creating file foo2
|
|
wrote 1000/1000 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 61440/61440 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar2
|
|
wrote 65536/65536 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the end of bar2
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar3
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the middle of bar3
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar4
|
|
wrote 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar4
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar5
|
|
Cloning foo1 into bar5
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar6
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar6
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file foo3
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo3 into bar7
|
|
linked 0/0 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
File digests after mounting again the filesystem:
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
|
|
Testing with -o nodatacow
|
|
|
|
Creating file foo1
|
|
wrote 4096/4096 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 126976/126976 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar1
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into the end of bar1
|
|
linked 131072/131072 bytes at offset 131072
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
Creating file foo2
|
|
wrote 1000/1000 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 61440/61440 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar2
|
|
wrote 65536/65536 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the end of bar2
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar3
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the middle of bar3
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar4
|
|
wrote 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar4
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar5
|
|
Cloning foo1 into bar5
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar6
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar6
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file foo3
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo3 into bar7
|
|
linked 0/0 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
File digests after mounting again the filesystem:
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
|
|
Testing with -O no-holes
|
|
|
|
Creating file foo1
|
|
wrote 4096/4096 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 126976/126976 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar1
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into the end of bar1
|
|
linked 131072/131072 bytes at offset 131072
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
Creating file foo2
|
|
wrote 1000/1000 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 61440/61440 bytes at offset 4096
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Creating file bar2
|
|
wrote 65536/65536 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the end of bar2
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar3
|
|
wrote 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo2 into the middle of bar3
|
|
linked 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
Creating file bar4
|
|
wrote 65536/65536 bytes at offset 65536
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar4
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar5
|
|
Cloning foo1 into bar5
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file bar6
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo1 into bar6
|
|
linked 131072/131072 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
Creating file foo3
|
|
wrote 500/500 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Cloning foo3 into bar7
|
|
linked 0/0 bytes at offset 0
|
|
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|
|
File digests after mounting again the filesystem:
|
|
File bar1 digest = e9d03fb5fff30baf3c709f2384dfde67
|
|
File bar2 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar3 digest = 85678cf32ed48f92ca42ad06d0b63f2a
|
|
File bar4 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar5 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar6 digest = 4b48829714d20a4e73a0cf1565270076
|
|
File bar7 digest = 67679afda6f846539ca7138452de0171
|