This patchset can be fetch from github: https://github.com/adam900710/btrfs-progs/tree/dev_extents_check
Hans van Kranenburg reported a case where btrfs DUP chunk allocator could allocate invalid dev extents, either overlaps with existing dev extents or beyond device boundary. This patchset enhances the btrfs-progs side to detect such problems. With hand crafted test image for it. Link: https://www.spinics.net/lists/linux-btrfs/msg82370.html Changelog: v2: Fix a bug in the 1st patch which makes lowmem mode never checks overlap dev extents. Fix test case bug which never passes due to wrong script. Qu Wenruo (5): btrfs-progs: lowmem check: Add check for overlapping dev extents btrfs-progs: original check: Add ability to detect bad dev extents btrfs-progs: lowmem check: Add dev_item check for used bytes and total bytes btrfs-progs: original check: Add dev_item check for used bytes and total bytes btrfs-progs: fsck-tests: Add test image for dev extents beyond device boundary check/main.c | 105 ++++++++++++++++++ check/mode-lowmem.c | 39 ++++++- .../over_dev_boundary.img.xz | Bin 0 -> 1640 bytes tests/fsck-tests/036-bad-dev-extents/test.sh | 20 ++++ 4 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 tests/fsck-tests/036-bad-dev-extents/over_dev_boundary.img.xz create mode 100755 tests/fsck-tests/036-bad-dev-extents/test.sh -- 2.19.1