]> Git Repo - linux.git/blob - fs/bcachefs/data_update.h
Linux 6.14-rc3
[linux.git] / fs / bcachefs / data_update.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2
3 #ifndef _BCACHEFS_DATA_UPDATE_H
4 #define _BCACHEFS_DATA_UPDATE_H
5
6 #include "bkey_buf.h"
7 #include "io_write_types.h"
8
9 struct moving_context;
10
11 struct data_update_opts {
12         unsigned        rewrite_ptrs;
13         unsigned        kill_ptrs;
14         u16             target;
15         u8              extra_replicas;
16         unsigned        btree_insert_flags;
17         unsigned        write_flags;
18 };
19
20 void bch2_data_update_opts_to_text(struct printbuf *, struct bch_fs *,
21                                    struct bch_io_opts *, struct data_update_opts *);
22
23 struct data_update {
24         /* extent being updated: */
25         enum btree_id           btree_id;
26         struct bkey_buf         k;
27         struct data_update_opts data_opts;
28         struct moving_context   *ctxt;
29         struct bch_move_stats   *stats;
30         struct bch_write_op     op;
31 };
32
33 void bch2_data_update_to_text(struct printbuf *, struct data_update *);
34
35 int bch2_data_update_index_update(struct bch_write_op *);
36
37 void bch2_data_update_read_done(struct data_update *,
38                                 struct bch_extent_crc_unpacked);
39
40 int bch2_extent_drop_ptrs(struct btree_trans *,
41                           struct btree_iter *,
42                           struct bkey_s_c,
43                           struct bch_io_opts *,
44                           struct data_update_opts *);
45
46 void bch2_data_update_exit(struct data_update *);
47 int bch2_data_update_init(struct btree_trans *, struct btree_iter *,
48                           struct moving_context *,
49                           struct data_update *,
50                           struct write_point_specifier,
51                           struct bch_io_opts, struct data_update_opts,
52                           enum btree_id, struct bkey_s_c);
53 void bch2_data_update_opts_normalize(struct bkey_s_c, struct data_update_opts *);
54
55 #endif /* _BCACHEFS_DATA_UPDATE_H */
This page took 0.033999 seconds and 4 git commands to generate.