+/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHEFS_MOVE_H
#define _BCACHEFS_MOVE_H
#include "btree_iter.h"
#include "buckets.h"
#include "io_types.h"
+#include "move_types.h"
struct bch_read_bio;
struct moving_context;
struct data_opts {
u16 target;
- unsigned rewrite_dev;
+ u8 rewrite_dev;
+ u8 nr_replicas;
int btree_insert_flags;
};
struct migrate_write {
+ enum btree_id btree_id;
enum data_cmd data_cmd;
struct data_opts data_opts;
struct write_point_specifier,
struct bch_io_opts,
enum data_cmd, struct data_opts,
- struct bkey_s_c);
+ enum btree_id, struct bkey_s_c);
typedef enum data_cmd (*move_pred_fn)(struct bch_fs *, void *,
- enum bkey_type, struct bkey_s_c_extent,
+ struct bkey_s_c,
struct bch_io_opts *, struct data_opts *);
-struct bch_move_stats {
- enum bch_data_type data_type;
- struct btree_iter iter;
-
- atomic64_t keys_moved;
- atomic64_t sectors_moved;
- atomic64_t sectors_seen;
- atomic64_t sectors_raced;
-};
-
int bch2_move_data(struct bch_fs *, struct bch_ratelimit *,
struct write_point_specifier,
struct bpos, struct bpos,