I just started doing automated testing with transaction restarts randomly injected, and that's been shaking out a few bugs. Here's fixes for most of them:
Kent Overstreet (9): bcachefs: fix restart handling in bch2_rename2() bcachefs: fix bch2_hash_delete() error path bcachefs: fix restart handling in bch2_fiemap() bcachefs: fix missing restart handling in bch2_read_retry_nodecode() bcachefs: fix restart handling in bch2_do_invalidates_work() bcachefs: fix restart handling in bch2_alloc_write_key() bcachefs: fix restart handling in __bch2_resume_logged_op_finsert() bcachefs: handle restarts in bch2_bucket_io_time_reset() bcachefs: Don't use commit_do() unnecessarily fs/bcachefs/alloc_background.c | 37 ++++++++++++++++------------- fs/bcachefs/alloc_foreground.c | 2 +- fs/bcachefs/btree_gc.c | 12 +++++++++- fs/bcachefs/btree_io.c | 2 +- fs/bcachefs/btree_iter.h | 2 ++ fs/bcachefs/btree_update.c | 4 ++-- fs/bcachefs/btree_update.h | 2 +- fs/bcachefs/btree_update_interior.c | 4 +--- fs/bcachefs/disk_accounting.c | 6 +++-- fs/bcachefs/ec.c | 18 +++++++------- fs/bcachefs/fs.c | 16 +++++-------- fs/bcachefs/fsck.c | 2 +- fs/bcachefs/inode.c | 3 +-- fs/bcachefs/io_misc.c | 2 +- fs/bcachefs/io_read.c | 8 +++---- fs/bcachefs/io_write.c | 4 ++-- fs/bcachefs/quota.c | 2 +- fs/bcachefs/rebalance.c | 4 +++- fs/bcachefs/recovery.c | 2 +- fs/bcachefs/str_hash.h | 7 ++++-- fs/bcachefs/subvolume.c | 7 +++--- fs/bcachefs/super.c | 2 +- fs/bcachefs/tests.c | 4 ++-- fs/bcachefs/xattr.c | 2 +- 24 files changed, 85 insertions(+), 69 deletions(-) -- 2.45.2
