diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2016-04-08 19:08:23 -0800 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-01-18 21:39:01 -0900 |
commit | 555c809865ea569fc288e9ce00f763a0db77987c (patch) | |
tree | e8b3d0ca300efe12fc2612f9bd3020d77afc6f7b | |
parent | b6d1d22adc830e78c68e23b3b7aa59439cf5c7d1 (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.h | 10 | ||||
-rw-r--r-- | drivers/md/bcache/btree_update.c | 14 | ||||
-rw-r--r-- | drivers/md/bcache/btree_update.h | 10 | ||||
-rw-r--r-- | drivers/md/bcache/extents.c | 24 | ||||
-rw-r--r-- | drivers/md/bcache/extents.h | 12 | ||||
-rw-r--r-- | drivers/md/bcache/fs-io.c | 4 | ||||
-rw-r--r-- | drivers/md/bcache/fs-io.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/inode.c | 2 | ||||
-rw-r--r-- | drivers/md/bcache/inode.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/io.c | 4 | ||||
-rw-r--r-- | drivers/md/bcache/io.h | 4 | ||||
-rw-r--r-- | drivers/md/bcache/io_types.h | 4 |
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); |