2022-10-24 21:46:57 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
# ifndef BTRFS_EXTENT_TREE_H
# define BTRFS_EXTENT_TREE_H
enum btrfs_inline_ref_type {
BTRFS_REF_TYPE_INVALID ,
BTRFS_REF_TYPE_BLOCK ,
BTRFS_REF_TYPE_DATA ,
BTRFS_REF_TYPE_ANY ,
} ;
int btrfs_get_extent_inline_ref_type ( const struct extent_buffer * eb ,
struct btrfs_extent_inline_ref * iref ,
enum btrfs_inline_ref_type is_data ) ;
u64 hash_extent_data_ref ( u64 root_objectid , u64 owner , u64 offset ) ;
int btrfs_add_excluded_extent ( struct btrfs_fs_info * fs_info ,
u64 start , u64 num_bytes ) ;
void btrfs_free_excluded_extents ( struct btrfs_block_group * cache ) ;
int btrfs_run_delayed_refs ( struct btrfs_trans_handle * trans , unsigned long count ) ;
void btrfs_cleanup_ref_head_accounting ( struct btrfs_fs_info * fs_info ,
struct btrfs_delayed_ref_root * delayed_refs ,
struct btrfs_delayed_ref_head * head ) ;
int btrfs_lookup_data_extent ( struct btrfs_fs_info * fs_info , u64 start , u64 len ) ;
int btrfs_lookup_extent_info ( struct btrfs_trans_handle * trans ,
struct btrfs_fs_info * fs_info , u64 bytenr ,
u64 offset , int metadata , u64 * refs , u64 * flags ) ;
int btrfs_pin_extent ( struct btrfs_trans_handle * trans , u64 bytenr , u64 num ,
int reserved ) ;
int btrfs_pin_extent_for_log_replay ( struct btrfs_trans_handle * trans ,
u64 bytenr , u64 num_bytes ) ;
int btrfs_exclude_logged_extents ( struct extent_buffer * eb ) ;
int btrfs_cross_ref_exist ( struct btrfs_root * root ,
u64 objectid , u64 offset , u64 bytenr , bool strict ,
struct btrfs_path * path ) ;
struct extent_buffer * btrfs_alloc_tree_block ( struct btrfs_trans_handle * trans ,
struct btrfs_root * root ,
u64 parent , u64 root_objectid ,
const struct btrfs_disk_key * key ,
int level , u64 hint ,
u64 empty_size ,
enum btrfs_lock_nesting nest ) ;
void btrfs_free_tree_block ( struct btrfs_trans_handle * trans ,
u64 root_id ,
struct extent_buffer * buf ,
u64 parent , int last_ref ) ;
int btrfs_alloc_reserved_file_extent ( struct btrfs_trans_handle * trans ,
struct btrfs_root * root , u64 owner ,
u64 offset , u64 ram_bytes ,
struct btrfs_key * ins ) ;
int btrfs_alloc_logged_file_extent ( struct btrfs_trans_handle * trans ,
u64 root_objectid , u64 owner , u64 offset ,
struct btrfs_key * ins ) ;
int btrfs_reserve_extent ( struct btrfs_root * root , u64 ram_bytes , u64 num_bytes ,
u64 min_alloc_size , u64 empty_size , u64 hint_byte ,
struct btrfs_key * ins , int is_data , int delalloc ) ;
int btrfs_inc_ref ( struct btrfs_trans_handle * trans , struct btrfs_root * root ,
struct extent_buffer * buf , int full_backref ) ;
int btrfs_dec_ref ( struct btrfs_trans_handle * trans , struct btrfs_root * root ,
struct extent_buffer * buf , int full_backref ) ;
int btrfs_set_disk_extent_flags ( struct btrfs_trans_handle * trans ,
struct extent_buffer * eb , u64 flags , int level ) ;
int btrfs_free_extent ( struct btrfs_trans_handle * trans , struct btrfs_ref * ref ) ;
int btrfs_free_reserved_extent ( struct btrfs_fs_info * fs_info ,
u64 start , u64 len , int delalloc ) ;
int btrfs_pin_reserved_extent ( struct btrfs_trans_handle * trans , u64 start , u64 len ) ;
int btrfs_finish_extent_commit ( struct btrfs_trans_handle * trans ) ;
int btrfs_inc_extent_ref ( struct btrfs_trans_handle * trans , struct btrfs_ref * generic_ref ) ;
2022-10-26 22:08:32 +03:00
int __must_check btrfs_drop_snapshot ( struct btrfs_root * root , int update_ref ,
int for_reloc ) ;
int btrfs_drop_subtree ( struct btrfs_trans_handle * trans ,
struct btrfs_root * root ,
struct extent_buffer * node ,
struct extent_buffer * parent ) ;
2022-10-24 21:46:57 +03:00
# endif