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 12struct btrfs_fs_info; 13struct btrfs_ref; 14 15#ifdef CONFIG_BTRFS_FS_REF_VERIFY 16 17#include <linux/spinlock.h> 18 19int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info); 20void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info); 21int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info, 22 struct btrfs_ref *generic_ref); 23void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start, 24 u64 len); 25 26static 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 32static inline int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info) 33{ 34 return 0; 35} 36 37static inline void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info) 38{ 39} 40 41static inline int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info, 42 struct btrfs_ref *generic_ref) 43{ 44 return 0; 45} 46 47static inline void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, 48 u64 start, u64 len) 49{ 50} 51 52static 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