Hello,

I've converted an ext4 filesystem (after a few attempts, and after
rolling back to a system running both the kernel and btrfs-progs 4.12)
to a single disk btrfs filesystem, but to do so I needed to disable
data checksums and small file inlining, otherwise I would get ENOSPC.

Now that I've defragged everything, I want to enable those features
back for all the existing files (datasums mainly). How can I go about
doing that?

I assume `--init-csum-tree` would recreate the checksums, but will it
also set the appropriate flags so that all new files in all
subdirectories have checksums aswell?

When I tried to run it (back on 4.19 kernel and btrfs-progs 4.20), it
ran for a few hours and then gave me this error:

Creating a new CRC tree
Opening filesystem to check...
Checking filesystem on /dev/sdb2
UUID: eb930a78-f6f7-4552-8200-6ebdd6c56b93
Reinitialize checksum tree
Unable to find block group for 0
Unable to find block group for 0
Unable to find block group for 0
ctree.c:2245: split_leaf: BUG_ON `1` triggered, value 1
btrfs(+0x141e9)[0x55d3c529d1e9]
btrfs(+0x14284)[0x55d3c529d284]
btrfs(+0x169ad)[0x55d3c529f9ad]
btrfs(btrfs_search_slot+0xf24)[0x55d3c52a0f9f]
btrfs(btrfs_csum_file_block+0x25f)[0x55d3c52ae888]
btrfs(+0x4aa30)[0x55d3c52d3a30]
btrfs(cmd_check+0x10b1)[0x55d3c52dfc9e]
btrfs(main+0x1f3)[0x55d3c529ce63]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb)[0x7f2eb872309b]
btrfs(_start+0x2a)[0x55d3c529ceaa]
Aborted

Did this actually generate checksums for some files and then stop, or
was nothing written at all? How can I verify checksums are calculated
and enabled, or otherwise make sure its working as intended?

Reply via email to