#include "bcachefs.h"
#include "alloc_foreground.h"
#include "bkey_buf.h"
#include "btree_update.h"
#include "buckets.h"
#include "compress.h"
#include "data_update.h"
#include "disk_groups.h"
#include "ec.h"
#include "error.h"
#include "extents.h"
#include "io_write.h"
#include "keylist.h"
#include "move.h"
#include "nocow_locking.h"
#include "rebalance.h"
#include "snapshot.h"
#include "subvolume.h"
#include "trace.h"
static void trace_move_extent_finish2(struct bch_fs *c, struct bkey_s_c k)
{ … }
static void trace_move_extent_fail2(struct data_update *m,
struct bkey_s_c new,
struct bkey_s_c wrote,
struct bkey_i *insert,
const char *msg)
{ … }
static int __bch2_data_update_index_update(struct btree_trans *trans,
struct bch_write_op *op)
{ … }
int bch2_data_update_index_update(struct bch_write_op *op)
{ … }
void bch2_data_update_read_done(struct data_update *m,
struct bch_extent_crc_unpacked crc)
{ … }
void bch2_data_update_exit(struct data_update *update)
{ … }
static void bch2_update_unwritten_extent(struct btree_trans *trans,
struct data_update *update)
{ … }
void bch2_data_update_opts_to_text(struct printbuf *out, struct bch_fs *c,
struct bch_io_opts *io_opts,
struct data_update_opts *data_opts)
{ … }
void bch2_data_update_to_text(struct printbuf *out, struct data_update *m)
{ … }
int bch2_extent_drop_ptrs(struct btree_trans *trans,
struct btree_iter *iter,
struct bkey_s_c k,
struct data_update_opts data_opts)
{ … }
int bch2_data_update_init(struct btree_trans *trans,
struct btree_iter *iter,
struct moving_context *ctxt,
struct data_update *m,
struct write_point_specifier wp,
struct bch_io_opts io_opts,
struct data_update_opts data_opts,
enum btree_id btree_id,
struct bkey_s_c k)
{ … }
void bch2_data_update_opts_normalize(struct bkey_s_c k, struct data_update_opts *opts)
{ … }