162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2014 Facebook.  All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef BTRFS_REF_VERIFY_H
762306a36Sopenharmony_ci#define BTRFS_REF_VERIFY_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifdef CONFIG_BTRFS_FS_REF_VERIFY
1062306a36Sopenharmony_ciint btrfs_build_ref_tree(struct btrfs_fs_info *fs_info);
1162306a36Sopenharmony_civoid btrfs_free_ref_cache(struct btrfs_fs_info *fs_info);
1262306a36Sopenharmony_ciint btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
1362306a36Sopenharmony_ci		       struct btrfs_ref *generic_ref);
1462306a36Sopenharmony_civoid btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start,
1562306a36Sopenharmony_ci			       u64 len);
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistatic inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info)
1862306a36Sopenharmony_ci{
1962306a36Sopenharmony_ci	spin_lock_init(&fs_info->ref_verify_lock);
2062306a36Sopenharmony_ci	fs_info->block_tree = RB_ROOT;
2162306a36Sopenharmony_ci}
2262306a36Sopenharmony_ci#else
2362306a36Sopenharmony_cistatic inline int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info)
2462306a36Sopenharmony_ci{
2562306a36Sopenharmony_ci	return 0;
2662306a36Sopenharmony_ci}
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cistatic inline void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info)
2962306a36Sopenharmony_ci{
3062306a36Sopenharmony_ci}
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cistatic inline int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
3362306a36Sopenharmony_ci		       struct btrfs_ref *generic_ref)
3462306a36Sopenharmony_ci{
3562306a36Sopenharmony_ci	return 0;
3662306a36Sopenharmony_ci}
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_cistatic inline void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info,
3962306a36Sopenharmony_ci					     u64 start, u64 len)
4062306a36Sopenharmony_ci{
4162306a36Sopenharmony_ci}
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_cistatic inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info)
4462306a36Sopenharmony_ci{
4562306a36Sopenharmony_ci}
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci#endif /* CONFIG_BTRFS_FS_REF_VERIFY */
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci#endif
50