diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-07-17 15:28:11 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-07-21 05:38:30 -0400 |
commit | a462bbb412a14698d56c8f783e4ba72bce4243f3 (patch) | |
tree | e498d97c16cabb4093ade91b25089f1fe9661949 | |
parent | ea1991c27232c9570657b4f15031ebc3c8aa3f1e (diff) |
bcachefs: bch2_trans_update() now takes struct btree_insert_entry
-rw-r--r-- | fs/bcachefs/acl.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/btree_update.h | 11 | ||||
-rw-r--r-- | fs/bcachefs/btree_update_leaf.c | 20 | ||||
-rw-r--r-- | fs/bcachefs/dirent.c | 8 | ||||
-rw-r--r-- | fs/bcachefs/fs.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/inode.c | 3 | ||||
-rw-r--r-- | fs/bcachefs/str_hash.h | 6 |
7 files changed, 21 insertions, 31 deletions
diff --git a/fs/bcachefs/acl.c b/fs/bcachefs/acl.c index f138d871e9b0..a74c6cf6c5bb 100644 --- a/fs/bcachefs/acl.c +++ b/fs/bcachefs/acl.c @@ -371,7 +371,7 @@ int bch2_acl_chmod(struct btree_trans *trans, goto err; } - bch2_trans_update(trans, iter, &new->k_i, 0); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(iter, &new->k_i)); *new_acl = acl; acl = NULL; err: diff --git a/fs/bcachefs/btree_update.h b/fs/bcachefs/btree_update.h index 5e47d4cd7c48..b1b2c4593765 100644 --- a/fs/bcachefs/btree_update.h +++ b/fs/bcachefs/btree_update.h @@ -142,8 +142,15 @@ int bch2_btree_node_update_key(struct bch_fs *, struct btree_iter *, /* new transactional interface: */ -void bch2_trans_update(struct btree_trans *, struct btree_iter *, - struct bkey_i *, unsigned); +static inline void +bch2_trans_update(struct btree_trans *trans, + struct btree_insert_entry entry) +{ + BUG_ON(trans->nr_updates >= ARRAY_SIZE(trans->updates)); + + trans->updates[trans->nr_updates++] = entry; +} + int bch2_trans_commit(struct btree_trans *, struct disk_reservation *, struct extent_insert_hook *, diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 4feb04400c9a..04e877ca38ce 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -580,26 +580,6 @@ err: goto out; } -void bch2_trans_update(struct btree_trans *trans, - struct btree_iter *iter, - struct bkey_i *k, - unsigned extra_journal_res) -{ - struct btree_insert_entry *i; - - BUG_ON(trans->nr_updates >= ARRAY_SIZE(trans->updates)); - - i = &trans->updates[trans->nr_updates++]; - - *i = (struct btree_insert_entry) { - .iter = iter, - .k = k, - .extra_res = extra_journal_res, - }; - - btree_insert_entry_checks(trans->c, i); -} - int bch2_trans_commit(struct btree_trans *trans, struct disk_reservation *disk_res, struct extent_insert_hook *hook, diff --git a/fs/bcachefs/dirent.c b/fs/bcachefs/dirent.c index d979ae0eaa17..c0636aa44bca 100644 --- a/fs/bcachefs/dirent.c +++ b/fs/bcachefs/dirent.c @@ -289,7 +289,9 @@ int bch2_dirent_rename(struct btree_trans *trans, * new_dst at the src position: */ new_dst->k.p = src_iter->pos; - bch2_trans_update(trans, src_iter, &new_dst->k_i, 0); + bch2_trans_update(trans, + BTREE_INSERT_ENTRY(src_iter, + &new_dst->k_i)); return 0; } else { /* If we're overwriting, we can't insert new_dst @@ -312,8 +314,8 @@ int bch2_dirent_rename(struct btree_trans *trans, } } - bch2_trans_update(trans, src_iter, &new_src->k_i, 0); - bch2_trans_update(trans, dst_iter, &new_dst->k_i, 0); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(src_iter, &new_src->k_i)); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(dst_iter, &new_dst->k_i)); return 0; } diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index f068a2815d2e..7b76e48c8571 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -134,7 +134,7 @@ int __must_check bch2_write_inode_trans(struct btree_trans *trans, return PTR_ERR(inode_p); bch2_inode_pack(inode_p, inode_u); - bch2_trans_update(trans, iter, &inode_p->inode.k_i, 0); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(iter, &inode_p->inode.k_i)); return 0; } diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index d4139faa341a..ea1d1f565426 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -347,7 +347,8 @@ again: inode_u->bi_generation = bkey_generation(k); bch2_inode_pack(inode_p, inode_u); - bch2_trans_update(trans, iter, &inode_p->inode.k_i, 0); + bch2_trans_update(trans, + BTREE_INSERT_ENTRY(iter, &inode_p->inode.k_i)); return 0; } } diff --git a/fs/bcachefs/str_hash.h b/fs/bcachefs/str_hash.h index 99f1fe873299..7eff5a42d91e 100644 --- a/fs/bcachefs/str_hash.h +++ b/fs/bcachefs/str_hash.h @@ -254,14 +254,14 @@ not_found: return -ENOENT; insert->k.p = slot->pos; - bch2_trans_update(trans, slot, insert, 0); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(slot, insert)); return 0; found: if (flags & BCH_HASH_SET_MUST_CREATE) return -EEXIST; insert->k.p = iter->pos; - bch2_trans_update(trans, iter, insert, 0); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(iter, insert)); return 0; } @@ -296,7 +296,7 @@ static inline int bch2_hash_delete_at(struct btree_trans *trans, delete->k.p = iter->pos; delete->k.type = ret ? desc.whiteout_type : KEY_TYPE_DELETED; - bch2_trans_update(trans, iter, delete, 0); + bch2_trans_update(trans, BTREE_INSERT_ENTRY(iter, delete)); return 0; } |