I'm trying to use btrfs on an external USB drive, without much success.
When the drive is connected for 2-3+ days, the filesystem gets remounted
readonly, with BTRFS saying "IO failure":
[77760.444607] BTRFS error (device sdb1): bad tree block start, want
378372096 have 0
[77760.550933] BTRFS error (device sdb1): bad tree block start, want
378372096 have 0
[77760.550972] BTRFS: error (device sdb1) in __btrfs_free_extent:6804:
errno=-5 IO failure
[77760.550979] BTRFS info (device sdb1): forced readonly
[77760.551003] BTRFS: error (device sdb1) in
btrfs_run_delayed_refs:2935: errno=-5 IO failure
[77760.553223] BTRFS error (device sdb1): pending csums is 4096
Note that there are no other kernel messages (i.e. that would indicate a
problem with disk, cable disconnection etc.).
The load on the drive itself can be quite heavy at times (i.e. 100% IO
for 1-2 h and more) - can it contribute to the problem (i.e. btrfs
thinks there is some timeout somewhere)?
Running 4.19.6 right now, but was experiencing the issue also with 4.18
kernels.
# btrfs device stats /data
[/dev/sda1].write_io_errs 0
[/dev/sda1].read_io_errs 0
[/dev/sda1].flush_io_errs 0
[/dev/sda1].corruption_errs 0
[/dev/sda1].generation_errs 0
Tomasz Chmielewski