1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Copyright (C) 2014 Facebook. All rights reserved. |
4 | */ |
5 | |
6 | #ifndef BTRFS_REF_VERIFY_H |
7 | #define BTRFS_REF_VERIFY_H |
8 | |
9 | #include <linux/types.h> |
10 | #include <linux/rbtree_types.h> |
11 | |
12 | struct btrfs_fs_info; |
13 | struct btrfs_ref; |
14 | |
15 | #ifdef CONFIG_BTRFS_FS_REF_VERIFY |
16 | |
17 | #include <linux/spinlock.h> |
18 | |
19 | int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info); |
20 | void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info); |
21 | int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info, |
22 | struct btrfs_ref *generic_ref); |
23 | void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start, |
24 | u64 len); |
25 | |
26 | static inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info) |
27 | { |
28 | spin_lock_init(&fs_info->ref_verify_lock); |
29 | fs_info->block_tree = RB_ROOT; |
30 | } |
31 | #else |
32 | static inline int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info) |
33 | { |
34 | return 0; |
35 | } |
36 | |
37 | static inline void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info) |
38 | { |
39 | } |
40 | |
41 | static inline int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info, |
42 | struct btrfs_ref *generic_ref) |
43 | { |
44 | return 0; |
45 | } |
46 | |
47 | static inline void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, |
48 | u64 start, u64 len) |
49 | { |
50 | } |
51 | |
52 | static inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info) |
53 | { |
54 | } |
55 | |
56 | #endif /* CONFIG_BTRFS_FS_REF_VERIFY */ |
57 | |
58 | #endif |
59 | |