summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-04-08 19:08:23 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2017-01-18 21:39:01 -0900
commit555c809865ea569fc288e9ce00f763a0db77987c (patch)
treee8b3d0ca300efe12fc2612f9bd3020d77afc6f7b
parentb6d1d22adc830e78c68e23b3b7aa59439cf5c7d1 (diff)
bcache: btree_insert_hook is actually only for extents
doesn't make sense for non extents
-rw-r--r--drivers/md/bcache/btree_types.h10
-rw-r--r--drivers/md/bcache/btree_update.c14
-rw-r--r--drivers/md/bcache/btree_update.h10
-rw-r--r--drivers/md/bcache/extents.c24
-rw-r--r--drivers/md/bcache/extents.h12
-rw-r--r--drivers/md/bcache/fs-io.c4
-rw-r--r--drivers/md/bcache/fs-io.h2
-rw-r--r--drivers/md/bcache/inode.c2
-rw-r--r--drivers/md/bcache/inode.h2
-rw-r--r--drivers/md/bcache/io.c4
-rw-r--r--drivers/md/bcache/io.h4
-rw-r--r--drivers/md/bcache/io_types.h4
12 files changed, 44 insertions, 48 deletions
diff --git a/drivers/md/bcache/btree_types.h b/drivers/md/bcache/btree_types.h
index e56c7cda6bd7..b691ec49e14a 100644
--- a/drivers/md/bcache/btree_types.h
+++ b/drivers/md/bcache/btree_types.h
@@ -154,15 +154,15 @@ static inline bool btree_node_has_ptrs(struct btree *b)
struct btree_iter;
struct bucket_stats_cache_set;
-enum btree_insert_hook_ret {
+enum extent_insert_hook_ret {
BTREE_HOOK_DO_INSERT,
BTREE_HOOK_NO_INSERT,
};
-struct btree_insert_hook {
- enum btree_insert_hook_ret (*fn)(struct btree_insert_hook *,
- struct btree_iter *, struct bpos,
- struct bkey_s_c, const struct bkey_i *);
+struct extent_insert_hook {
+ enum extent_insert_hook_ret
+ (*fn)(struct extent_insert_hook *, struct btree_iter *,
+ struct bpos, struct bkey_s_c, const struct bkey_i *);
};
enum btree_insert_ret {
diff --git a/drivers/md/bcache/btree_update.c b/drivers/md/bcache/btree_update.c
index c71285b6d223..c480c9647ef9 100644
--- a/drivers/md/bcache/btree_update.c
+++ b/drivers/md/bcache/btree_update.c
@@ -1478,7 +1478,7 @@ out_unlock:
static enum btree_insert_ret
btree_insert_key(struct btree_iter *iter, struct bkey_i *insert,
struct disk_reservation *disk_res,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
struct journal_res *res,
unsigned flags)
{
@@ -1489,7 +1489,7 @@ btree_insert_key(struct btree_iter *iter, struct bkey_i *insert,
bch_btree_node_iter_verify(&iter->node_iters[0], &b->keys);
ret = !b->keys.ops->is_extents
- ? bch_insert_fixup_key(iter, insert, hook, res)
+ ? bch_insert_fixup_key(iter, insert, res)
: bch_insert_fixup_extent(iter, insert, disk_res,
hook, res, flags);
@@ -1541,7 +1541,7 @@ static int btree_trans_iter_cmp(const void *_l, const void *_r)
int bch_btree_insert_trans(struct btree_insert_trans *m, unsigned nr,
struct disk_reservation *disk_res,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
u64 *journal_seq, unsigned flags)
{
struct cache_set *c = m[0].iter->c;
@@ -1719,7 +1719,7 @@ err:
int bch_btree_insert_at(struct btree_iter *iter,
struct bkey_i *insert_key,
struct disk_reservation *disk_res,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
u64 *journal_seq, unsigned flags)
{
struct btree_insert_trans m = {
@@ -1738,7 +1738,7 @@ int bch_btree_insert_at(struct btree_iter *iter,
int bch_btree_insert_list_at(struct btree_iter *iter,
struct keylist *keys,
struct disk_reservation *disk_res,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
u64 *journal_seq, unsigned flags)
{
BUG_ON(flags & BTREE_INSERT_ATOMIC);
@@ -1810,7 +1810,7 @@ int bch_btree_insert_check_key(struct btree_iter *iter,
int bch_btree_insert(struct cache_set *c, enum btree_id id,
struct bkey_i *k,
struct disk_reservation *disk_res,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
u64 *journal_seq, int flags)
{
struct btree_iter iter;
@@ -1864,7 +1864,7 @@ int bch_btree_delete_range(struct cache_set *c, enum btree_id id,
struct bpos start,
struct bpos end,
u64 version,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
u64 *journal_seq)
{
struct btree_iter iter;
diff --git a/drivers/md/bcache/btree_update.h b/drivers/md/bcache/btree_update.h
index 1d459cf475e8..dfdfcefb29f9 100644
--- a/drivers/md/bcache/btree_update.h
+++ b/drivers/md/bcache/btree_update.h
@@ -236,10 +236,10 @@ void bch_btree_insert_node(struct btree *, struct btree_iter *,
int bch_btree_insert_at(struct btree_iter *, struct bkey_i *,
struct disk_reservation *,
- struct btree_insert_hook *, u64 *, unsigned);
+ struct extent_insert_hook *, u64 *, unsigned);
int bch_btree_insert_list_at(struct btree_iter *, struct keylist *,
struct disk_reservation *,
- struct btree_insert_hook *, u64 *, unsigned);
+ struct extent_insert_hook *, u64 *, unsigned);
struct btree_insert_trans {
struct btree_iter *iter;
@@ -250,19 +250,19 @@ struct btree_insert_trans {
int bch_btree_insert_trans(struct btree_insert_trans[], unsigned,
struct disk_reservation *,
- struct btree_insert_hook *,
+ struct extent_insert_hook *,
u64 *, unsigned);
int bch_btree_insert_check_key(struct btree_iter *, struct bkey_i *);
int bch_btree_insert(struct cache_set *, enum btree_id, struct bkey_i *,
struct disk_reservation *,
- struct btree_insert_hook *, u64 *, int flags);
+ struct extent_insert_hook *, u64 *, int flags);
int bch_btree_update(struct cache_set *, enum btree_id,
struct bkey_i *, u64 *);
int bch_btree_delete_range(struct cache_set *, enum btree_id,
struct bpos, struct bpos, u64,
- struct btree_insert_hook *, u64 *);
+ struct extent_insert_hook *, u64 *);
int bch_btree_node_rewrite(struct btree *, struct btree_iter *, bool);
diff --git a/drivers/md/bcache/extents.c b/drivers/md/bcache/extents.c
index 1c6b1f890680..e6b7c1b07e1e 100644
--- a/drivers/md/bcache/extents.c
+++ b/drivers/md/bcache/extents.c
@@ -108,7 +108,6 @@ struct btree_nr_keys bch_key_sort_fix_overlapping(struct btree_keys *b,
enum btree_insert_ret
bch_insert_fixup_key(struct btree_iter *iter,
struct bkey_i *insert,
- struct btree_insert_hook *hook,
struct journal_res *res)
{
struct btree *b = iter->nodes[0];
@@ -118,7 +117,6 @@ bch_insert_fixup_key(struct btree_iter *iter,
int cmp;
BUG_ON(iter->level);
- BUG_ON(hook);
EBUG_ON((k = bch_btree_node_iter_prev_all(node_iter, &b->keys)) &&
(bkey_deleted(k)
? bkey_cmp_packed(f, k, &insert->k) > 0
@@ -954,11 +952,11 @@ static bool bch_extent_cmpxchg_cmp(struct bkey_s_c l, struct bkey_s_c r)
* On return, there is room in @res for at least one more key of the same size
* as @new.
*/
-enum btree_insert_hook_ret bch_extent_cmpxchg(struct btree_insert_hook *hook,
- struct btree_iter *iter,
- struct bpos next_pos,
- struct bkey_s_c k,
- const struct bkey_i *new)
+enum extent_insert_hook_ret bch_extent_cmpxchg(struct extent_insert_hook *hook,
+ struct btree_iter *iter,
+ struct bpos next_pos,
+ struct bkey_s_c k,
+ const struct bkey_i *new)
{
struct bch_replace_info *replace = container_of(hook,
struct bch_replace_info, hook);
@@ -1037,8 +1035,8 @@ static void extent_insert_committed(struct btree_iter *iter,
}
}
-static enum btree_insert_hook_ret
-__extent_insert_advance_pos(struct btree_insert_hook *hook,
+static enum extent_insert_hook_ret
+__extent_insert_advance_pos(struct extent_insert_hook *hook,
struct btree_iter *iter,
struct bpos next_pos,
struct bkey_i *insert,
@@ -1046,7 +1044,7 @@ __extent_insert_advance_pos(struct btree_insert_hook *hook,
struct journal_res *res,
struct bucket_stats_cache_set *stats)
{
- enum btree_insert_hook_ret ret;
+ enum extent_insert_hook_ret ret;
if (k.k && k.k->size &&
insert->k.version &&
@@ -1081,8 +1079,8 @@ __extent_insert_advance_pos(struct btree_insert_hook *hook,
* Update iter->pos, marking how much of @insert we've processed, and call hook
* fn:
*/
-static enum btree_insert_hook_ret
-extent_insert_advance_pos(struct btree_insert_hook *hook,
+static enum extent_insert_hook_ret
+extent_insert_advance_pos(struct extent_insert_hook *hook,
struct btree_iter *iter,
struct bkey_i *insert,
struct bkey_s_c k,
@@ -1162,7 +1160,7 @@ enum btree_insert_ret
bch_insert_fixup_extent(struct btree_iter *iter,
struct bkey_i *insert,
struct disk_reservation *disk_res,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
struct journal_res *res,
unsigned flags)
{
diff --git a/drivers/md/bcache/extents.h b/drivers/md/bcache/extents.h
index 48d53cecff3e..1610ac35f7fe 100644
--- a/drivers/md/bcache/extents.h
+++ b/drivers/md/bcache/extents.h
@@ -18,7 +18,7 @@ struct btree_nr_keys bch_extent_sort_fix_overlapping(struct btree_keys *,
enum btree_insert_ret
bch_insert_fixup_key(struct btree_iter *, struct bkey_i *,
- struct btree_insert_hook *, struct journal_res *);
+ struct journal_res *);
extern const struct bkey_ops bch_bkey_btree_ops;
extern const struct bkey_ops bch_bkey_extent_ops;
@@ -48,16 +48,14 @@ bch_extent_pick_ptr(struct cache_set *c, struct bkey_s_c k,
bch_extent_pick_ptr_avoiding(c, k, NULL, ret);
}
-enum btree_insert_hook_ret bch_extent_cmpxchg(struct btree_insert_hook *,
- struct btree_iter *,
- struct bpos,
- struct bkey_s_c,
- const struct bkey_i *);
+enum extent_insert_hook_ret
+bch_extent_cmpxchg(struct extent_insert_hook *, struct btree_iter *,
+ struct bpos, struct bkey_s_c, const struct bkey_i *);
enum btree_insert_ret
bch_insert_fixup_extent(struct btree_iter *, struct bkey_i *,
struct disk_reservation *,
- struct btree_insert_hook *,
+ struct extent_insert_hook *,
struct journal_res *, unsigned);
void bch_extent_drop_stale(struct cache_set *c, struct bkey_s_extent);
diff --git a/drivers/md/bcache/fs-io.c b/drivers/md/bcache/fs-io.c
index 21c227839276..471cb0619e4d 100644
--- a/drivers/md/bcache/fs-io.c
+++ b/drivers/md/bcache/fs-io.c
@@ -223,8 +223,8 @@ static struct i_size_update *i_size_update_new(struct bch_inode_info *ei,
/* i_sectors accounting: */
-static enum btree_insert_hook_ret
-i_sectors_hook_fn(struct btree_insert_hook *hook,
+static enum extent_insert_hook_ret
+i_sectors_hook_fn(struct extent_insert_hook *hook,
struct btree_iter *iter,
struct bpos next_pos,
struct bkey_s_c k,
diff --git a/drivers/md/bcache/fs-io.h b/drivers/md/bcache/fs-io.h
index bafbdd54fb45..7d9212735a2b 100644
--- a/drivers/md/bcache/fs-io.h
+++ b/drivers/md/bcache/fs-io.h
@@ -36,7 +36,7 @@ int bch_migrate_page(struct address_space *, struct page *,
struct page *, enum migrate_mode);
struct i_sectors_hook {
- struct btree_insert_hook hook;
+ struct extent_insert_hook hook;
s64 sectors;
#ifdef CONFIG_BCACHE_DEBUG
struct bch_inode_info *ei;
diff --git a/drivers/md/bcache/inode.c b/drivers/md/bcache/inode.c
index cf028019f9c0..72a3c1e64349 100644
--- a/drivers/md/bcache/inode.c
+++ b/drivers/md/bcache/inode.c
@@ -163,7 +163,7 @@ again:
}
int bch_inode_truncate(struct cache_set *c, u64 inode_nr, u64 new_size,
- struct btree_insert_hook *hook, u64 *journal_seq)
+ struct extent_insert_hook *hook, u64 *journal_seq)
{
return bch_discard(c, POS(inode_nr, new_size), POS(inode_nr + 1, 0),
0, hook, journal_seq);
diff --git a/drivers/md/bcache/inode.h b/drivers/md/bcache/inode.h
index 5b7425ca895d..a89064a37861 100644
--- a/drivers/md/bcache/inode.h
+++ b/drivers/md/bcache/inode.h
@@ -8,7 +8,7 @@ ssize_t bch_inode_status(char *, size_t, const struct bkey *);
int bch_inode_create(struct cache_set *, struct bkey_i *, u64, u64, u64 *);
int bch_inode_truncate(struct cache_set *, u64, u64,
- struct btree_insert_hook *, u64 *);
+ struct extent_insert_hook *, u64 *);
int bch_inode_rm(struct cache_set *, u64);
int bch_inode_update(struct cache_set *, struct bkey_i *, u64 *);
diff --git a/drivers/md/bcache/io.c b/drivers/md/bcache/io.c
index 11c8eccea083..bfca3f476e16 100644
--- a/drivers/md/bcache/io.c
+++ b/drivers/md/bcache/io.c
@@ -1253,7 +1253,7 @@ void bch_write(struct closure *cl)
void bch_write_op_init(struct bch_write_op *op, struct cache_set *c,
struct bch_write_bio *bio, struct disk_reservation res,
struct write_point *wp, struct bkey_s_c insert_key,
- struct btree_insert_hook *insert_hook,
+ struct extent_insert_hook *insert_hook,
u64 *journal_seq, unsigned flags)
{
if (!wp) {
@@ -1328,7 +1328,7 @@ void bch_replace_init(struct bch_replace_info *r, struct bkey_s_c old)
*/
int bch_discard(struct cache_set *c, struct bpos start,
struct bpos end, u64 version,
- struct btree_insert_hook *hook,
+ struct extent_insert_hook *hook,
u64 *journal_seq)
{
return bch_btree_delete_range(c, BTREE_ID_EXTENTS, start, end,
diff --git a/drivers/md/bcache/io.h b/drivers/md/bcache/io.h
index ab559632b7b4..f60344ca0d3e 100644
--- a/drivers/md/bcache/io.h
+++ b/drivers/md/bcache/io.h
@@ -33,7 +33,7 @@ void bch_write_op_init(struct bch_write_op *, struct cache_set *,
struct bch_write_bio *,
struct disk_reservation, struct write_point *,
struct bkey_s_c,
- struct btree_insert_hook *, u64 *, unsigned);
+ struct extent_insert_hook *, u64 *, unsigned);
void bch_write(struct closure *);
void bch_replace_init(struct bch_replace_info *, struct bkey_s_c);
@@ -77,7 +77,7 @@ void bch_submit_bbio_replicas(struct bch_write_bio *, struct cache_set *,
const struct bkey_i *, unsigned, bool);
int bch_discard(struct cache_set *, struct bpos, struct bpos,
- u64, struct btree_insert_hook *, u64 *);
+ u64, struct extent_insert_hook *, u64 *);
void __cache_promote(struct cache_set *, struct bbio *,
struct bkey_s_c, struct bkey_s_c, unsigned);
diff --git a/drivers/md/bcache/io_types.h b/drivers/md/bcache/io_types.h
index 30527c9914a3..2e3a9488f7b9 100644
--- a/drivers/md/bcache/io_types.h
+++ b/drivers/md/bcache/io_types.h
@@ -76,7 +76,7 @@ struct bch_write_bio {
};
struct bch_replace_info {
- struct btree_insert_hook hook;
+ struct extent_insert_hook hook;
/* How many insertions succeeded */
unsigned successes;
/* How many insertions failed */
@@ -119,7 +119,7 @@ struct bch_write_op {
u64 journal_seq;
};
- struct btree_insert_hook *insert_hook;
+ struct extent_insert_hook *insert_hook;
struct keylist insert_keys;
BKEY_PADDED(insert_key);