btrfs-progs/cmds
Qu Wenruo 77db6bd402 btrfs-progs: rescue: introduce clear-uuid-tree
[BUG]
There is a bug report that a corrupted key type (expected
UUID_KEY_SUBVOL, has EXTENT_ITEM) causing newer kernel to reject a
mount.

Although the root cause is not determined yet, with roll out of v5.11
kernel to various distros, such problem should be prevented by
tree-checker, no matter if it's hardware problem or not.

And older kernel with "-o uuid_rescan" mount option won't help, as
uuid_rescan will only delete items with
UUID_KEY_SUBVOL/UUID_KEY_RECEIVED_SUBVOL key types, not deleting such
corrupted key.

[FIX]
To fix such problem we have to rely on offline tool, thus there we
introduce a new rescue tool, clear-uuid-tree, to empty and then remove
uuid tree.

Kernel will re-generate the correct uuid tree at next mount.

Reported-by: S. <sb56637@gmail.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2021-11-22 21:45:37 +01:00
..
balance.c btrfs-progs: factor out profile parsing to common utils 2021-09-07 13:58:44 +02:00
commands.h btrfs-progs: split subvolume list to its own file 2021-10-08 20:47:03 +02:00
device.c btrfs-progs: device remove: add support for cancel 2021-05-20 22:14:18 +02:00
filesystem-du.c btrfs-progs: split unit related helpers from utils.c 2021-05-06 16:41:47 +02:00
filesystem-usage.c btrfs-progs: fi usage: fix calculation of chunk size for RAID1/DUP profiles 2021-11-18 10:17:33 +01:00
filesystem-usage.h btrfs-progs: move all cmds-fi*.c to cmds/ 2019-07-03 20:49:03 +02:00
filesystem.c btrfs-progs: fix comments in cmd_filesystem_show 2021-10-06 16:50:46 +02:00
inspect-dump-super.c btrfs-progs: remove temporary buffer for super block 2021-11-05 12:50:03 +01:00
inspect-dump-tree.c btrfs-progs: dump-tree: add options to dump checksums 2021-06-19 22:07:49 +02:00
inspect-tree-stats.c btrfs-progs: switch %Lu to %llu format 2021-06-19 22:07:49 +02:00
inspect.c btrfs-progs: use btrfs_subvolid_resolve instead of btrfs_list_path_for_root 2021-10-08 20:47:03 +02:00
property.c btrfs-progs: prop set: ro->rw and received_uuid 2021-10-07 18:40:26 +02:00
props.h btrfs-progs: prop set: add force parameter 2021-10-07 18:40:24 +02:00
qgroup.c btrfs-progs: move all private definitions to cmds/qgroup.c 2021-09-07 19:21:14 +02:00
qgroup.h btrfs-progs: move all private definitions to cmds/qgroup.c 2021-09-07 19:21:14 +02:00
quota.c btrfs-progs: split open/close helpers from utils.c 2021-05-06 16:41:47 +02:00
receive-dump.c btrfs-progs: remove unused prototypes from send-utils.h 2021-10-08 20:47:04 +02:00
receive-dump.h btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
receive.c btrfs-progs: simplify struct subvol_uuid_search use 2021-10-08 20:47:04 +02:00
replace.c btrfs-progs: replace start: add option -K/--nodiscard 2021-10-06 16:49:35 +02:00
rescue-chunk-recover.c btrfs-progs: cache csum_size and csum_type in btrfs_fs_info 2021-11-05 12:50:03 +01:00
rescue-super-recover.c btrfs-progs: remove temporary buffer for super block 2021-11-05 12:50:03 +01:00
rescue.c btrfs-progs: rescue: introduce clear-uuid-tree 2021-11-22 21:45:37 +01:00
rescue.h btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
restore.c btrfs-progs: introduce OPEN_CTREE_ALLOW_TRANSID_MISMATCH flag 2021-09-20 12:17:29 +02:00
scrub.c btrfs-progs: split unit related helpers from utils.c 2021-05-06 16:41:47 +02:00
send.c btrfs-progs: simplify struct subvol_uuid_search use 2021-10-08 20:47:04 +02:00
subvolume-list.c btrfs-progs: subvol list: open code list_subvol_fill_paths in its caller 2021-10-08 20:47:04 +02:00
subvolume.c btrfs-progs: fix read-write subvol and received_uuid flags check 2021-11-04 20:56:42 +01:00