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