diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-02-26 17:35:47 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-02-26 19:12:07 -0500 |
commit | dbb99e492daa3ffe623685f3871dfcb97c01cd4f (patch) | |
tree | dde888ef9b2163678336f7803be970ba6a3ce8df /libbcachefs/btree_update.h | |
parent | ac0d08877aa87a9cdf493bc6f336c391fb4e04a0 (diff) |
Update bcachefs sources to 1210f6c925 bcachefs: BCH_SB_FEATURES_ALL
Diffstat (limited to 'libbcachefs/btree_update.h')
-rw-r--r-- | libbcachefs/btree_update.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/libbcachefs/btree_update.h b/libbcachefs/btree_update.h index be4fe81..d1cd839 100644 --- a/libbcachefs/btree_update.h +++ b/libbcachefs/btree_update.h @@ -59,6 +59,7 @@ enum btree_insert_flags { int bch2_btree_delete_at(struct btree_trans *, struct btree_iter *, unsigned); +int __bch2_btree_insert(struct btree_trans *, enum btree_id, struct bkey_i *); int bch2_btree_insert(struct bch_fs *, enum btree_id, struct bkey_i *, struct disk_reservation *, u64 *, int flags); @@ -98,17 +99,17 @@ static inline int bch2_trans_commit(struct btree_trans *trans, return __bch2_trans_commit(trans); } -#define __bch2_trans_do(_trans, _disk_res, _journal_seq, \ - _flags, _reset_flags, _do) \ +#define __bch2_trans_do(_trans, _disk_res, _journal_seq, _flags, _do) \ ({ \ int _ret; \ \ - do { \ - bch2_trans_reset(_trans, _reset_flags); \ - \ + while (1) { \ _ret = (_do) ?: bch2_trans_commit(_trans, (_disk_res), \ (_journal_seq), (_flags)); \ - } while (_ret == -EINTR); \ + if (_ret != -EINTR) \ + break; \ + bch2_trans_reset(_trans, 0); \ + } \ \ _ret; \ }) @@ -120,7 +121,7 @@ static inline int bch2_trans_commit(struct btree_trans *trans, \ bch2_trans_init(&trans, (_c), 0, 0); \ _ret = __bch2_trans_do(&trans, _disk_res, _journal_seq, _flags, \ - TRANS_RESET_MEM|TRANS_RESET_ITERS, _do); \ + _do); \ _ret2 = bch2_trans_exit(&trans); \ \ _ret ?: _ret2; \ |