btrfs-progs/tune
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
..
change-csum.c btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00
change-metadata-uuid.c btrfs-progs: tune: fix typos and mistakes in messages 2023-02-28 19:49:31 +01:00
change-uuid.c btrfs-progs: tune: fix typos and mistakes in messages 2023-02-28 19:49:31 +01:00
convert-bgt.c btrfs-progs: tune: fix typos and mistakes in messages 2023-02-28 19:49:31 +01:00
main.c btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00
seeding.c btrfs-progs: tune: factor out seeding to own file 2023-02-18 17:43:04 +01:00
tune.h btrfs-progs: tune: update checksum conversion 2023-02-28 20:11:22 +01:00