diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-06-13 19:07:19 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:34 -0400 |
commit | c501fef6deb1de13d45d22a3df32906adf17275b (patch) | |
tree | f514d7ff6fc2aca72cd22f381a6bace2d83bc3f9 /fs/bcachefs/move.h | |
parent | 30f0349d62429effd729ae9272c6fb57f47d1436 (diff) |
bcachefs: Pull out data_update.c
This is the start of reorganizing the data IO paths. The plan is to also
break apart io.c into data_read.c and data_write.c, and migrate_write
will be renamed to the data_update path.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/move.h')
-rw-r--r-- | fs/bcachefs/move.h | 45 |
1 files changed, 10 insertions, 35 deletions
diff --git a/fs/bcachefs/move.h b/fs/bcachefs/move.h index 901d8f875946..6d273f67a82c 100644 --- a/fs/bcachefs/move.h +++ b/fs/bcachefs/move.h @@ -4,51 +4,26 @@ #include "btree_iter.h" #include "buckets.h" -#include "io_types.h" +#include "data_update.h" #include "move_types.h" struct bch_read_bio; -struct moving_context; -enum data_cmd { - DATA_SKIP, - DATA_SCRUB, - DATA_ADD_REPLICAS, - DATA_REWRITE, - DATA_PROMOTE, -}; - -struct data_opts { - u16 target; - u8 rewrite_dev; - u8 nr_replicas; - int btree_insert_flags; -}; +struct moving_context { + /* Closure for waiting on all reads and writes to complete */ + struct closure cl; -struct migrate_write { - enum btree_id btree_id; - enum data_cmd data_cmd; - struct data_opts data_opts; + struct bch_move_stats *stats; - unsigned nr_ptrs_reserved; + struct list_head reads; - struct moving_context *ctxt; + /* in flight sectors: */ + atomic_t read_sectors; + atomic_t write_sectors; - /* what we read: */ - struct bch_extent_ptr ptr; - u64 offset; - - struct bch_write_op op; + wait_queue_head_t wait; }; -int bch2_migrate_index_update(struct bch_write_op *); -void bch2_migrate_read_done(struct migrate_write *, struct bch_read_bio *); -int bch2_migrate_write_init(struct bch_fs *, struct migrate_write *, - struct write_point_specifier, - struct bch_io_opts, - enum data_cmd, struct data_opts, - enum btree_id, struct bkey_s_c); - typedef enum data_cmd (*move_pred_fn)(struct bch_fs *, void *, struct bkey_s_c, struct bch_io_opts *, struct data_opts *); |