2018-04-03 20:16:55 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
2017-09-29 22:43:50 +03:00
/*
* Copyright ( C ) 2014 Facebook . All rights reserved .
*/
2018-04-03 20:16:55 +03:00
# ifndef BTRFS_REF_VERIFY_H
# define BTRFS_REF_VERIFY_H
2017-09-29 22:43:50 +03:00
2024-01-27 02:53:06 +03:00
# include <linux/types.h>
# include <linux/rbtree_types.h>
struct btrfs_fs_info ;
struct btrfs_ref ;
2017-09-29 22:43:50 +03:00
# ifdef CONFIG_BTRFS_FS_REF_VERIFY
2024-01-27 02:53:06 +03:00
# include <linux/spinlock.h>
2017-09-29 22:43:50 +03:00
int btrfs_build_ref_tree ( struct btrfs_fs_info * fs_info ) ;
void btrfs_free_ref_cache ( struct btrfs_fs_info * fs_info ) ;
2019-04-04 09:45:33 +03:00
int btrfs_ref_tree_mod ( struct btrfs_fs_info * fs_info ,
struct btrfs_ref * generic_ref ) ;
2017-09-29 22:43:50 +03:00
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 )
{
}
2019-04-04 09:45:33 +03:00
static inline int btrfs_ref_tree_mod ( struct btrfs_fs_info * fs_info ,
struct btrfs_ref * generic_ref )
2017-09-29 22:43:50 +03:00
{
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_FS_REF_VERIFY */
2018-04-03 20:16:55 +03:00
# endif