This urgent patchset can be fetched from github: https://github.com/adam900710/btrfs-progs/tree/flush_super Which is based on v4.20.2.
Before this patch, btrfs-progs writes to the fs has no barrier at all. All metadata and superblock are just buffered write, no barrier between super blocks and metadata writes at all. No wonder why even clear space cache can cause serious transid corruption to the originally good fs. Please merge this fix as soon as possible as I really don't want to see btrfs-progs corrupting any fs any more. Qu Wenruo (2): btrfs-progs: disk-io: Make super block write error more easy to read btrfs-progs: disk-io: Flush to ensure super block write is FUA disk-io.c | 45 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) -- 2.21.0