]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/data_update.h
Update bcachefs sources to 95ff72a6c1 fixup! mm: Centralize & improve oom reporting...
[bcachefs-tools-debian] / libbcachefs / 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_types.h"
8
9 struct moving_context;
10
11 struct data_update_opts {
12         unsigned        rewrite_ptrs;
13         u16             target;
14         u8              extra_replicas;
15         unsigned        btree_insert_flags;
16         unsigned        write_flags;
17 };
18
19 struct data_update {
20         /* extent being updated: */
21         enum btree_id           btree_id;
22         struct bkey_buf         k;
23         struct data_update_opts data_opts;
24         struct moving_context   *ctxt;
25         struct bch_write_op     op;
26 };
27
28 void bch2_data_update_read_done(struct data_update *,
29                                 struct bch_extent_crc_unpacked,
30                                 struct closure *);
31
32 void bch2_data_update_exit(struct data_update *);
33 int bch2_data_update_init(struct bch_fs *, struct data_update *,
34                           struct write_point_specifier,
35                           struct bch_io_opts, struct data_update_opts,
36                           enum btree_id, struct bkey_s_c);
37
38 #endif /* _BCACHEFS_DATA_UPDATE_H */