From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 0/5] btrfs-progs: Bad extent item generation related bug fixes
Date: Tue, 31 Dec 2019 15:12:15 +0800 [thread overview]
Message-ID: <20191231071220.32935-1-wqu@suse.com> (raw)
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
check/main.c | 36 ++++++++++++++----
check/mode-lowmem.c | 19 +++++++++
.../bad_extent_item_gen.img.xz | Bin 0 -> 1916 bytes
.../test.sh | 19 +++++++++
4 files changed, 67 insertions(+), 7 deletions(-)
create mode 100644 tests/fsck-tests/044-invalid-extent-item-generation/bad_extent_item_gen.img.xz
create mode 100755 tests/fsck-tests/044-invalid-extent-item-generation/test.sh
--
2.24.1
next reply other threads:[~2019-12-31 7:16 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-31 7:12 Qu Wenruo [this message]
2019-12-31 7:12 ` [PATCH 1/5] btrfs-progs: check: Initialize extent_record::generation member Qu Wenruo
2019-12-31 7:12 ` [PATCH 2/5] btrfs-progs: check: Populate extent generation correctly for data extents Qu Wenruo
2019-12-31 7:12 ` [PATCH 3/5] btrfs-progs: check/lowmem: Detect invalid EXTENT_ITEM and EXTENT_DATA generation Qu Wenruo
2019-12-31 7:12 ` [PATCH 4/5] btrfs-progs: check/original: Detect invalid extent generation Qu Wenruo
2019-12-31 7:12 ` [PATCH 5/5] btrfs-progs: fsck-tests: Make sure btrfs check can detect bad extent item generation Qu Wenruo
2019-12-31 8:05 ` [PATCH 0/5] btrfs-progs: Bad extent item generation related bug fixes Su Yue
2020-01-02 18:36 ` David Sterba
-- strict thread matches above, loose matches on Subject: below --
2019-12-31 7:17 Qu Wenruo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191231071220.32935-1-wqu@suse.com \
--to=wqu@suse.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox