From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 0/3] btrfs-progs: check: properly fix missing INODE_REF cases
Date: Wed, 17 Dec 2025 18:38:12 +1030 [thread overview]
Message-ID: <cover.1765958753.git.wqu@suse.com> (raw)
This is inspired by a recent corruption report that an INODE_REF key hits a
bitflip and becomes UNKNOWN.8 key.
That cause missing INODE_REF, and unfortunately neither original nor
lowmem mode can properly handle it.
For the original mode it just completely lacks the handling for such
case, thus fallback to delete the good DIR_INDEX, making things
worse.
For the lowmem mode, although it is trying to keep the good
DIR_INDEX/DIR_ITEM, it doesn't handle index number search, thus using
the default (-1) as index, causing incorrect new link to be added.
Fix both modes, and add a new test case for it.
Qu Wenruo (3):
btrfs-progs: check/original: add dedicated missing INODE_REF repair
btrfs-progs: check/lowmem: fix INODE_REF repair
btrfs-progs: fsck-tests: add a test case for repairing missing
INODE_REF
check/main.c | 51 ++++++++++++++++++
check/mode-lowmem.c | 11 ++++
.../070-missing-inode-ref/.lowmem_repairable | 0
.../070-missing-inode-ref/default.img.xz | Bin 0 -> 2092 bytes
4 files changed, 62 insertions(+)
create mode 100644 tests/fsck-tests/070-missing-inode-ref/.lowmem_repairable
create mode 100644 tests/fsck-tests/070-missing-inode-ref/default.img.xz
--
2.52.0
next reply other threads:[~2025-12-17 8:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-17 8:08 Qu Wenruo [this message]
2025-12-17 8:08 ` [PATCH 1/3] btrfs-progs: check/original: add dedicated missing INODE_REF repair Qu Wenruo
2025-12-17 8:08 ` [PATCH 2/3] btrfs-progs: check/lowmem: fix " Qu Wenruo
2025-12-17 8:08 ` [PATCH 3/3] btrfs-progs: fsck-tests: add a test case for repairing missing INODE_REF Qu Wenruo
2026-01-24 1:00 ` [PATCH 0/3] btrfs-progs: check: properly fix missing INODE_REF cases David Sterba
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=cover.1765958753.git.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