mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
bcachefs: plumb btree_id through move_pred_fd
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
f3c8eaf7a1
commit
7a274285d3
|
|
@ -667,7 +667,7 @@ static int bch2_move_data_btree(struct moving_context *ctxt,
|
|||
continue;
|
||||
|
||||
memset(&data_opts, 0, sizeof(data_opts));
|
||||
if (!pred(c, arg, k, io_opts, &data_opts))
|
||||
if (!pred(c, arg, extent_iter->btree_id, k, io_opts, &data_opts))
|
||||
goto next;
|
||||
|
||||
/*
|
||||
|
|
@ -851,7 +851,7 @@ static int __bch2_move_data_phys(struct moving_context *ctxt,
|
|||
}
|
||||
|
||||
struct data_update_opts data_opts = {};
|
||||
if (!pred(c, arg, k, &io_opts, &data_opts)) {
|
||||
if (!pred(c, arg, bp.v->btree_id, k, &io_opts, &data_opts)) {
|
||||
bch2_trans_iter_exit(trans, &iter);
|
||||
goto next;
|
||||
}
|
||||
|
|
@ -934,7 +934,8 @@ struct evacuate_bucket_arg {
|
|||
struct data_update_opts data_opts;
|
||||
};
|
||||
|
||||
static bool evacuate_bucket_pred(struct bch_fs *c, void *_arg, struct bkey_s_c k,
|
||||
static bool evacuate_bucket_pred(struct bch_fs *c, void *_arg,
|
||||
enum btree_id btree, struct bkey_s_c k,
|
||||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
|
|
@ -1048,7 +1049,7 @@ static int bch2_move_btree(struct bch_fs *c,
|
|||
}
|
||||
|
||||
static bool rereplicate_pred(struct bch_fs *c, void *arg,
|
||||
struct bkey_s_c k,
|
||||
enum btree_id btree, struct bkey_s_c k,
|
||||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
|
|
@ -1080,7 +1081,7 @@ static bool rereplicate_pred(struct bch_fs *c, void *arg,
|
|||
}
|
||||
|
||||
static bool migrate_pred(struct bch_fs *c, void *arg,
|
||||
struct bkey_s_c k,
|
||||
enum btree_id btree, struct bkey_s_c k,
|
||||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
|
|
@ -1107,7 +1108,7 @@ static bool rereplicate_btree_pred(struct bch_fs *c, void *arg,
|
|||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
return rereplicate_pred(c, arg, bkey_i_to_s_c(&b->key), io_opts, data_opts);
|
||||
return rereplicate_pred(c, arg, b->c.btree_id, bkey_i_to_s_c(&b->key), io_opts, data_opts);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1163,7 +1164,7 @@ int bch2_scan_old_btree_nodes(struct bch_fs *c, struct bch_move_stats *stats)
|
|||
}
|
||||
|
||||
static bool drop_extra_replicas_pred(struct bch_fs *c, void *arg,
|
||||
struct bkey_s_c k,
|
||||
enum btree_id btree, struct bkey_s_c k,
|
||||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
|
|
@ -1196,11 +1197,12 @@ static bool drop_extra_replicas_btree_pred(struct bch_fs *c, void *arg,
|
|||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
return drop_extra_replicas_pred(c, arg, bkey_i_to_s_c(&b->key), io_opts, data_opts);
|
||||
return drop_extra_replicas_pred(c, arg, b->c.btree_id, bkey_i_to_s_c(&b->key),
|
||||
io_opts, data_opts);
|
||||
}
|
||||
|
||||
static bool scrub_pred(struct bch_fs *c, void *_arg,
|
||||
struct bkey_s_c k,
|
||||
enum btree_id btree, struct bkey_s_c k,
|
||||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ do { \
|
|||
break; \
|
||||
} while (1)
|
||||
|
||||
typedef bool (*move_pred_fn)(struct bch_fs *, void *, struct bkey_s_c,
|
||||
typedef bool (*move_pred_fn)(struct bch_fs *, void *, enum btree_id, struct bkey_s_c,
|
||||
struct bch_io_opts *, struct data_update_opts *);
|
||||
|
||||
extern const char * const bch2_data_ops_strs[];
|
||||
|
|
|
|||
|
|
@ -454,7 +454,7 @@ static int do_rebalance_extent(struct moving_context *ctxt,
|
|||
}
|
||||
|
||||
static bool rebalance_pred(struct bch_fs *c, void *arg,
|
||||
struct bkey_s_c k,
|
||||
enum btree_id btree, struct bkey_s_c k,
|
||||
struct bch_io_opts *io_opts,
|
||||
struct data_update_opts *data_opts)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user