1 /* SPDX-License-Identifier: GPL-2.0 */
3 #ifndef BTRFS_DELALLOC_SPACE_H
4 #define BTRFS_DELALLOC_SPACE_H
6 #include <linux/types.h>
8 struct extent_changeset
;
12 int btrfs_alloc_data_chunk_ondemand(const struct btrfs_inode
*inode
, u64 bytes
);
13 int btrfs_check_data_free_space(struct btrfs_inode
*inode
,
14 struct extent_changeset
**reserved
, u64 start
, u64 len
,
16 void btrfs_free_reserved_data_space(struct btrfs_inode
*inode
,
17 struct extent_changeset
*reserved
, u64 start
, u64 len
);
18 void btrfs_delalloc_release_space(struct btrfs_inode
*inode
,
19 struct extent_changeset
*reserved
,
20 u64 start
, u64 len
, bool qgroup_free
);
21 void btrfs_free_reserved_data_space_noquota(struct btrfs_fs_info
*fs_info
,
23 void btrfs_delalloc_release_metadata(struct btrfs_inode
*inode
, u64 num_bytes
,
25 int btrfs_delalloc_reserve_space(struct btrfs_inode
*inode
,
26 struct extent_changeset
**reserved
, u64 start
, u64 len
);
27 int btrfs_delalloc_reserve_metadata(struct btrfs_inode
*inode
, u64 num_bytes
,
28 u64 disk_num_bytes
, bool noflush
);
29 void btrfs_delalloc_release_extents(struct btrfs_inode
*inode
, u64 num_bytes
);
31 #endif /* BTRFS_DELALLOC_SPACE_H */