From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH v2.1 0/3] btrfs: Introduce new rescue= mount options
Date: Mon, 15 Apr 2019 13:36:05 +0800 [thread overview]
Message-ID: <20190415053608.29003-1-wqu@suse.com> (raw)
This patchset can be fetched from github:
https://github.com/adam900710/linux/tree/rescue_options
The basis HEAD is v5.1-rc4 tag.
There are quite a lot btrfs extent tree corruption report in the mail
list.
Since btrfs will do mount time block group item search, one corrupted
leaf containing block group item will prevent the whole fs to be
mounted.
This patchset will try to address the problem by introducing a new mount
option, "rescue=skip_bg", as a last-resort rescue.
Of course this option will have a lot of restriction to prevent further
screwing up the fs, including:
- Permanent RO
No remount rw is allowed
- No dirty log
Either clean the log or use rescue=no_log_replay mount option
This "rescue=skip_bg" has some advantage compared to user space tool
like "btrfs-restore":
- Unified recovery tool
User can use any tool they're familiar with, as long as the kernel
doesn't panic.
- More info for subvolume.
"btrfs subv list" can work now!
Also move the following mount options to "rescue=" group:
- nologreplay
to rescue=no_log_replay
- usebackuproot
to rescue=use_backup_root
Old options are still available for compatibility purpose, but they are
deprecated in favor of new 'rescue=' super option.
Different rescue sub options can be separated by ':', like:
"rescue=no_log_replay:skip_bg:use_backup_root".
Or the traditional but longer way like:
"rescue=no_log_replay,rescue=skip_bg"
The separation character is chosen by:
- No conflicts with existing character
Especially no conflict with ','.
- No extra escaping/quota
Original plan is ';', but since it'll be interpreted by bash, it's
changed to current ':'.
Changelog:
v2:
- Introduce 'rescue=' super option.
- Rename original 'usebackuproot' and 'nologreplay'.
It at least makes my vim spell check happier.
- Remove 'recovery' mount option.
As its successor is now deprecated, not need to keep the predecessor.
v2.1:
- Rebase to v5.1-rc4.
- Fix the typos in the cover letter.
Qu Wenruo (3):
btrfs: Remove "recovery" mount option
btrfs: Introduce "rescue=" mount option
btrfs: Introduce new mount option to skip block group items scan
fs/btrfs/ctree.h | 1 +
fs/btrfs/disk-io.c | 29 +++++++++++--
fs/btrfs/extent-tree.c | 59 ++++++++++++++++++++++++++
fs/btrfs/super.c | 96 ++++++++++++++++++++++++++++++++++++------
fs/btrfs/volumes.c | 7 +++
5 files changed, 176 insertions(+), 16 deletions(-)
--
2.21.0
next reply other threads:[~2019-04-15 5:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-15 5:36 Qu Wenruo [this message]
2019-04-15 5:36 ` [PATCH v2.1 1/3] btrfs: Remove "recovery" mount option Qu Wenruo
2019-04-15 9:05 ` Johannes Thumshirn
2019-04-15 9:08 ` Qu Wenruo
2019-04-15 9:29 ` Johannes Thumshirn
2019-04-15 5:36 ` [PATCH v2.1 2/3] btrfs: Introduce "rescue=" " Qu Wenruo
2019-04-15 5:36 ` [PATCH v2.1 3/3] btrfs: Introduce new mount option to skip block group items scan 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=20190415053608.29003-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;
as well as URLs for NNTP newsgroup(s).