summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-07-17 15:28:11 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2018-07-21 05:38:30 -0400
commita462bbb412a14698d56c8f783e4ba72bce4243f3 (patch)
treee498d97c16cabb4093ade91b25089f1fe9661949
parentea1991c27232c9570657b4f15031ebc3c8aa3f1e (diff)
bcachefs: bch2_trans_update() now takes struct btree_insert_entry
-rw-r--r--fs/bcachefs/acl.c2
-rw-r--r--fs/bcachefs/btree_update.h11
-rw-r--r--fs/bcachefs/btree_update_leaf.c20
-rw-r--r--fs/bcachefs/dirent.c8
-rw-r--r--fs/bcachefs/fs.c2
-rw-r--r--fs/bcachefs/inode.c3
-rw-r--r--fs/bcachefs/str_hash.h6
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;
}