btrfs-progs/kernel-shared
David Sterba 9be33f558c btrfs-progs: tune: update checksum conversion
The checksum conversion is still experimental and still does not convert
all filesystems correctly. Do not use on valuable data.

Previous implementation copied the UUID conversion which was not a good
base for the checksum conversion so it left out basically all trees
except extent and checksum.

This update adds the base for the required safety features:

- let the old csum tree intact until the full conversion is done (ie.
  all data are still verifiable)
- add on-disk status tracking item, this should keep the from/to
  checksum conversion, last generation to catch potential updates of the
  underlying filesystem if conversion is interrupted and the filesystem
  mounted
- convert most of the fundamental trees, the subvolumes, tree log and
  relocation trees are not converted
- trees are converted in-place to avoid potentially running out of space
  but this might be better done by transaction protection with a
  temporary tree

Known issues:

- not all trees are converted
- not all checksums are correctly inserted into the new tree and reading
  the files leads to EIO

Issue: #438
Signed-off-by: David Sterba <dsterba@suse.com>
2023-02-28 20:11:22 +01:00
..
backref.c btrfs-progs: remove the _nr from the item helpers 2022-03-09 15:13:13 +01:00
backref.h btrfs-progs: move extent_io.c to kernel-shared/ 2020-08-31 17:01:04 +02:00
compression.h btrfs-progs: kerncompat: hide definition of __init 2023-01-03 17:24:36 +01:00
ctree.c btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00
ctree.h btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00
delayed-ref.c btrfs-progs: don't include btrfs-list.h unless necessary 2021-10-08 20:47:03 +02:00
delayed-ref.h btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
dir-item.c btrfs-progs: remove the _nr from the item helpers 2022-03-09 15:13:13 +01:00
disk-io.c btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00
disk-io.h btrfs-progs: btrfstune: add the ability to convert to block group tree feature 2022-09-12 18:25:32 +02:00
extent-tree.c btrfs-progs: fix a false alert on an uninitialized variable when BUG_ON() is involved 2023-02-18 17:44:02 +01:00
extent_io.c btrfs-progs: make write_extent_buffer take a const eb 2022-11-30 19:14:29 +01:00
extent_io.h btrfs-progs: make write_extent_buffer take a const eb 2022-11-30 19:14:29 +01:00
file-item.c btrfs-progs: kernel-lib: remove radix-tree 2022-10-11 09:08:07 +02:00
file.c btrfs-progs: sync compression.h from the kernel 2022-11-30 19:14:29 +01:00
free-space-cache.c btrfs-progs: use read_data_from_disk() to replace read_extent_from_disk() and replace read_extent_data() 2022-04-25 19:08:30 +02:00
free-space-cache.h btrfs-progs: check: batch v1 space cache inodes when clearing 2021-07-22 16:26:05 +02:00
free-space-tree.c btrfs-progs: fix may be unused warning in load_free_space_extents 2022-10-11 09:06:11 +02:00
free-space-tree.h btrfs-progs: properly initialize block group thresholds 2022-05-20 15:54:20 +02:00
inode-item.c btrfs-progs: remove the _nr from the item helpers 2022-03-09 15:13:13 +01:00
inode.c btrfs-progs: use template for transaction commit error messages 2022-10-11 09:08:10 +02:00
print-tree.c btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00
print-tree.h btrfs-progs: dump-tree: add options to dump checksums 2021-06-19 22:07:49 +02:00
root-tree.c btrfs-progs: remove the _nr from the item helpers 2022-03-09 15:13:13 +01:00
send.h btrfs-progs: receive: add support for fs-verity 2022-10-11 09:08:08 +02:00
transaction.c btrfs-progs: move dirty eb tracking to it's own io_tree 2022-11-28 18:57:43 +01:00
transaction.h btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
ulist.c btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
ulist.h btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
uuid-tree.c btrfs-progs: remove the _nr from the item helpers 2022-03-09 15:13:13 +01:00
volumes.c btrfs-progs: fix a false alert on an uninitialized variable when BUG_ON() is involved 2023-02-18 17:44:02 +01:00
volumes.h btrfs-progs: remove the unused btrfs_fs_info::seeding member 2022-04-29 22:13:22 +02:00
zoned.c btrfs-progs: fix set but not used variables 2023-02-18 17:44:03 +01:00
zoned.h btrfs-progs: zoned: export sb_zone_number() and related constants 2022-04-08 23:17:35 +02:00