reflink.h (a10195764901e0a41e64d596de57a957e7f982f0) reflink.h (facafdcbc157686311dbe58649ef9d29fcf8e610)
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_REFLINK_H
3#define _BCACHEFS_REFLINK_H
4
5int bch2_reflink_p_invalid(const struct bch_fs *, struct bkey_s_c,
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_REFLINK_H
3#define _BCACHEFS_REFLINK_H
4
5int bch2_reflink_p_invalid(const struct bch_fs *, struct bkey_s_c,
6 int, struct printbuf *);
6 unsigned, struct printbuf *);
7void bch2_reflink_p_to_text(struct printbuf *, struct bch_fs *,
8 struct bkey_s_c);
9bool bch2_reflink_p_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c);
10
11#define bch2_bkey_ops_reflink_p ((struct bkey_ops) { \
12 .key_invalid = bch2_reflink_p_invalid, \
13 .val_to_text = bch2_reflink_p_to_text, \
14 .key_merge = bch2_reflink_p_merge, \
15 .trans_trigger = bch2_trans_mark_reflink_p, \
16 .atomic_trigger = bch2_mark_reflink_p, \
17})
18
19int bch2_reflink_v_invalid(const struct bch_fs *, struct bkey_s_c,
7void bch2_reflink_p_to_text(struct printbuf *, struct bch_fs *,
8 struct bkey_s_c);
9bool bch2_reflink_p_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c);
10
11#define bch2_bkey_ops_reflink_p ((struct bkey_ops) { \
12 .key_invalid = bch2_reflink_p_invalid, \
13 .val_to_text = bch2_reflink_p_to_text, \
14 .key_merge = bch2_reflink_p_merge, \
15 .trans_trigger = bch2_trans_mark_reflink_p, \
16 .atomic_trigger = bch2_mark_reflink_p, \
17})
18
19int bch2_reflink_v_invalid(const struct bch_fs *, struct bkey_s_c,
20 int, struct printbuf *);
20 unsigned, struct printbuf *);
21void bch2_reflink_v_to_text(struct printbuf *, struct bch_fs *,
22 struct bkey_s_c);
23int bch2_trans_mark_reflink_v(struct btree_trans *, enum btree_id, unsigned,
24 struct bkey_s_c, struct bkey_i *, unsigned);
25
26#define bch2_bkey_ops_reflink_v ((struct bkey_ops) { \
27 .key_invalid = bch2_reflink_v_invalid, \
28 .val_to_text = bch2_reflink_v_to_text, \
29 .swab = bch2_ptr_swab, \
30 .trans_trigger = bch2_trans_mark_reflink_v, \
31 .atomic_trigger = bch2_mark_extent, \
32})
33
34int bch2_indirect_inline_data_invalid(const struct bch_fs *, struct bkey_s_c,
21void bch2_reflink_v_to_text(struct printbuf *, struct bch_fs *,
22 struct bkey_s_c);
23int bch2_trans_mark_reflink_v(struct btree_trans *, enum btree_id, unsigned,
24 struct bkey_s_c, struct bkey_i *, unsigned);
25
26#define bch2_bkey_ops_reflink_v ((struct bkey_ops) { \
27 .key_invalid = bch2_reflink_v_invalid, \
28 .val_to_text = bch2_reflink_v_to_text, \
29 .swab = bch2_ptr_swab, \
30 .trans_trigger = bch2_trans_mark_reflink_v, \
31 .atomic_trigger = bch2_mark_extent, \
32})
33
34int bch2_indirect_inline_data_invalid(const struct bch_fs *, struct bkey_s_c,
35 int, struct printbuf *);
35 unsigned, struct printbuf *);
36void bch2_indirect_inline_data_to_text(struct printbuf *,
37 struct bch_fs *, struct bkey_s_c);
38int bch2_trans_mark_indirect_inline_data(struct btree_trans *,
39 enum btree_id, unsigned,
40 struct bkey_s_c, struct bkey_i *,
41 unsigned);
42
43#define bch2_bkey_ops_indirect_inline_data ((struct bkey_ops) { \

--- 33 unchanged lines hidden ---
36void bch2_indirect_inline_data_to_text(struct printbuf *,
37 struct bch_fs *, struct bkey_s_c);
38int bch2_trans_mark_indirect_inline_data(struct btree_trans *,
39 enum btree_id, unsigned,
40 struct bkey_s_c, struct bkey_i *,
41 unsigned);
42
43#define bch2_bkey_ops_indirect_inline_data ((struct bkey_ops) { \

--- 33 unchanged lines hidden ---