GNU Linux-libre 6.9-gnu
[releases.git] / fs / bcachefs / io_misc.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_IO_MISC_H
3 #define _BCACHEFS_IO_MISC_H
4
5 int bch2_extent_fallocate(struct btree_trans *, subvol_inum, struct btree_iter *,
6                           u64, struct bch_io_opts, s64 *,
7                           struct write_point_specifier);
8 int bch2_fpunch_at(struct btree_trans *, struct btree_iter *,
9                    subvol_inum, u64, s64 *);
10 int bch2_fpunch(struct bch_fs *c, subvol_inum, u64, u64, s64 *);
11
12 void bch2_logged_op_truncate_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
13
14 #define bch2_bkey_ops_logged_op_truncate ((struct bkey_ops) {   \
15         .val_to_text    = bch2_logged_op_truncate_to_text,      \
16         .min_val_size   = 24,                                   \
17 })
18
19 int bch2_resume_logged_op_truncate(struct btree_trans *, struct bkey_i *);
20
21 int bch2_truncate(struct bch_fs *, subvol_inum, u64, u64 *);
22
23 void bch2_logged_op_finsert_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
24
25 #define bch2_bkey_ops_logged_op_finsert ((struct bkey_ops) {    \
26         .val_to_text    = bch2_logged_op_finsert_to_text,       \
27         .min_val_size   = 24,                                   \
28 })
29
30 int bch2_resume_logged_op_finsert(struct btree_trans *, struct bkey_i *);
31
32 int bch2_fcollapse_finsert(struct bch_fs *, subvol_inum, u64, u64, bool, s64 *);
33
34 #endif /* _BCACHEFS_IO_MISC_H */