xref: /openbmc/linux/fs/btrfs/ref-verify.h (revision c39f2d9db0fd81ea20bb5cce9b3f082ca63753e2)
19888c340SDavid Sterba /* SPDX-License-Identifier: GPL-2.0 */
2fd708b81SJosef Bacik /*
3fd708b81SJosef Bacik  * Copyright (C) 2014 Facebook.  All rights reserved.
4fd708b81SJosef Bacik  */
59888c340SDavid Sterba 
69888c340SDavid Sterba #ifndef BTRFS_REF_VERIFY_H
79888c340SDavid Sterba #define BTRFS_REF_VERIFY_H
8fd708b81SJosef Bacik 
9fd708b81SJosef Bacik #ifdef CONFIG_BTRFS_FS_REF_VERIFY
10fd708b81SJosef Bacik int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info);
11fd708b81SJosef Bacik void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info);
12*8a5040f7SQu Wenruo int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
13*8a5040f7SQu Wenruo 		       struct btrfs_ref *generic_ref);
14fd708b81SJosef Bacik void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start,
15fd708b81SJosef Bacik 			       u64 len);
16fd708b81SJosef Bacik 
btrfs_init_ref_verify(struct btrfs_fs_info * fs_info)17fd708b81SJosef Bacik static inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info)
18fd708b81SJosef Bacik {
19fd708b81SJosef Bacik 	spin_lock_init(&fs_info->ref_verify_lock);
20fd708b81SJosef Bacik 	fs_info->block_tree = RB_ROOT;
21fd708b81SJosef Bacik }
22fd708b81SJosef Bacik #else
btrfs_build_ref_tree(struct btrfs_fs_info * fs_info)23fd708b81SJosef Bacik static inline int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info)
24fd708b81SJosef Bacik {
25fd708b81SJosef Bacik 	return 0;
26fd708b81SJosef Bacik }
27fd708b81SJosef Bacik 
btrfs_free_ref_cache(struct btrfs_fs_info * fs_info)28fd708b81SJosef Bacik static inline void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info)
29fd708b81SJosef Bacik {
30fd708b81SJosef Bacik }
31fd708b81SJosef Bacik 
btrfs_ref_tree_mod(struct btrfs_fs_info * fs_info,struct btrfs_ref * generic_ref)32*8a5040f7SQu Wenruo static inline int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
33*8a5040f7SQu Wenruo 		       struct btrfs_ref *generic_ref)
34fd708b81SJosef Bacik {
35fd708b81SJosef Bacik 	return 0;
36fd708b81SJosef Bacik }
37fd708b81SJosef Bacik 
btrfs_free_ref_tree_range(struct btrfs_fs_info * fs_info,u64 start,u64 len)38fd708b81SJosef Bacik static inline void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info,
39fd708b81SJosef Bacik 					     u64 start, u64 len)
40fd708b81SJosef Bacik {
41fd708b81SJosef Bacik }
42fd708b81SJosef Bacik 
btrfs_init_ref_verify(struct btrfs_fs_info * fs_info)43fd708b81SJosef Bacik static inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info)
44fd708b81SJosef Bacik {
45fd708b81SJosef Bacik }
46fd708b81SJosef Bacik 
47fd708b81SJosef Bacik #endif /* CONFIG_BTRFS_FS_REF_VERIFY */
489888c340SDavid Sterba 
499888c340SDavid Sterba #endif
50