mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-24 23:22:27 +00:00
btrfs-progs: tests: add test image of out-of-order inline backref items
Issue #622 reported a case where ntfs2btrfs can generate out-of-order inline backref items, which can lead to kernel transaction abort, but not detected by btrfs-check. This patch would add such image, whose extent tree looks like this for the only data extent: item 0 key (13631488 EXTENT_ITEM 4096) itemoff 16172 itemsize 111 refs 3 gen 7 flags DATA (178 0xdfb591fa80d95ea) extent data backref root FS_TREE objectid 257 offset 0 count 1 (178 0xdfb591fbbf5f519) extent data backref root FS_TREE objectid 258 offset 0 count 1 (178 0xdfb591f49f9f8e7) extent data backref root FS_TREE objectid 259 offset 0 count 1 While the original good base image has the following backrefs for the same data extent: item 0 key (13631488 EXTENT_ITEM 4096) itemoff 16172 itemsize 111 refs 3 gen 7 flags DATA (178 0xdfb591fbbf5f519) extent data backref root FS_TREE objectid 258 offset 0 count 1 (178 0xdfb591fa80d95ea) extent data backref root FS_TREE objectid 257 offset 0 count 1 (178 0xdfb591f49f9f8e7) extent data backref root FS_TREE objectid 259 offset 0 count 1 Notice the sequence (the 2nd number in the round brackets) should be descending. (Meanwhile type should be ascending, but it's way harder to create.) For now we don't have a way to fix it, but at least we should detect it. Issue: #622 Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
ff9730cafa
commit
208073c373
Binary file not shown.
19
tests/fsck-tests/061-out-of-order-inline-backref/test.sh
Executable file
19
tests/fsck-tests/061-out-of-order-inline-backref/test.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Verify that check can detect out-of-order inline backref items.
|
||||
#
|
||||
# There is a report that one ntfs2btrfs generated some out-of-order inline
|
||||
# backref items, while btrfs-check failed to detect it at all.
|
||||
#
|
||||
# Make sure btrfs check can at least detect such error.
|
||||
|
||||
source "$TEST_TOP/common"
|
||||
|
||||
check_prereq btrfs
|
||||
|
||||
check_image() {
|
||||
run_mustfail "out-of-order inline backref items not detected" \
|
||||
"$TOP/btrfs" check "$1"
|
||||
}
|
||||
|
||||
check_all_images
|
Loading…
Reference in New Issue
Block a user