From e6203e6ff9fc0ee2f15dd06b4db61b89eaace982 Mon Sep 17 00:00:00 2001 From: Su Yue Date: Tue, 3 Jul 2018 15:58:51 +0800 Subject: btrfs-progs: fsck-tests: add test case with keyed data backref with reloc tree blocks For trees have been balanced, leaves are with flag BTRFS_HEADER_FLAG_RELOC and extent data backrefs are shared. Like: ===================== item 0 key (11927552 EXTENT_ITEM 524288) itemoff 3932 itemsize 63 refs 129 gen 7 flags DATA shared data backref parent 35897344 count 41 shared data backref parent 35426304 count 37 shared data backref parent 35422208 count 51 ===================== Then make the leaf which owns the extent data cowed. The shared data backref was to transferred to keyed data ref, but remaining backrefs are still shared. Like: ===================== item 0 key (11927552 EXTENT_ITEM 524288) itemoff 3887 itemsize 108 refs 129 gen 7 flags DATA extent data backref root 5 objectid 258 offset 0 count 40 extent data backref root 5 objectid 257 offset 0 count 1 shared data backref parent 35426304 count 37 shared data backref parent 35422208 count 51 ===================== However lowmem mode used to iterate the whole inode to find all references, and doesn't care if a reference is already counted by the shared tree block. Add the test case to check it. Signed-off-by: Su Yue Signed-off-by: David Sterba --- .../keyed_data_ref_with_reloc_leaf.img | Bin 0 -> 16384 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_reloc_leaf.img diff --git a/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_reloc_leaf.img b/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_reloc_leaf.img new file mode 100644 index 00000000..80345cf9 Binary files /dev/null and b/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_reloc_leaf.img differ -- cgit v1.2.3