]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/data_update.h
Move c_src dirs back to toplevel
[bcachefs-tools-debian] / libbcachefs / data_update.h
index e64505453a550d7e20f6e61ba418ba71bb3109ca..991095bbd469baeb55de1c0d2636267e49d68a28 100644 (file)
@@ -4,12 +4,13 @@
 #define _BCACHEFS_DATA_UPDATE_H
 
 #include "bkey_buf.h"
-#include "io_types.h"
+#include "io_write_types.h"
 
 struct moving_context;
 
 struct data_update_opts {
        unsigned        rewrite_ptrs;
+       unsigned        kill_ptrs;
        u16             target;
        u8              extra_replicas;
        unsigned        btree_insert_flags;
@@ -22,17 +23,27 @@ struct data_update {
        struct bkey_buf         k;
        struct data_update_opts data_opts;
        struct moving_context   *ctxt;
+       struct bch_move_stats   *stats;
        struct bch_write_op     op;
 };
 
+int bch2_data_update_index_update(struct bch_write_op *);
+
 void bch2_data_update_read_done(struct data_update *,
-                               struct bch_extent_crc_unpacked,
-                               struct closure *);
+                               struct bch_extent_crc_unpacked);
+
+int bch2_extent_drop_ptrs(struct btree_trans *,
+                         struct btree_iter *,
+                         struct bkey_s_c,
+                         struct data_update_opts);
 
 void bch2_data_update_exit(struct data_update *);
-int bch2_data_update_init(struct bch_fs *, struct data_update *,
+int bch2_data_update_init(struct btree_trans *, struct btree_iter *,
+                         struct moving_context *,
+                         struct data_update *,
                          struct write_point_specifier,
                          struct bch_io_opts, struct data_update_opts,
                          enum btree_id, struct bkey_s_c);
+void bch2_data_update_opts_normalize(struct bkey_s_c, struct data_update_opts *);
 
 #endif /* _BCACHEFS_DATA_UPDATE_H */