On Tue, Dec 31, 2019 at 03:12:15PM +0800, Qu Wenruo wrote: > There is an issue reported in github, where an fs get corrupted > extent tree initialy, then I recommended --init-extent-tree. > > Although --init-extent-tree indeed fixed the original problem, it caused > new problems, quite a lot of EXTENT_ITEMs now get bad generation number, > which failed to mount with v5.4. > > The problem turns out to be a bug in backref repair code, which doesn't > initialize extent_record::generation, causing garbage in EXTENT_ITEMs. > > This patch will: > - Fix the problem > Patch 1 > > - Enhance EXTENT_ITEM generation repair > Patch 2 > > - Make `btrfs check` able to detect such bad generation > Patch 3~4 > > - Add new test case for above ability > Patch 5 > > Qu Wenruo (5): > btrfs-progs: check: Initialize extent_record::generation member > btrfs-progs: check: Populate extent generation correctly for data > extents > btrfs-progs: check/lowmem: Detect invalid EXTENT_ITEM and EXTENT_DATA > generation > btrfs-progs: check/original: Detect invalid extent generation > btrfs-progs: fsck-tests: Make sure btrfs check can detect bad extent > item generation Thanks for the fixes, added to devel.
