blob: 28bf5c3ef43053dd0395a8714e565dce184f254c [file] [log] [blame]
Josef Bacik86736342019-06-19 15:12:00 -04001/* SPDX-License-Identifier: GPL-2.0 */
2
3#ifndef BTRFS_DELALLOC_SPACE_H
4#define BTRFS_DELALLOC_SPACE_H
5
6struct extent_changeset;
7
8int btrfs_alloc_data_chunk_ondemand(struct btrfs_inode *inode, u64 bytes);
Nikolay Borisov36ea6f32020-06-03 08:55:41 +03009int btrfs_check_data_free_space(struct btrfs_inode *inode,
Josef Bacik86736342019-06-19 15:12:00 -040010 struct extent_changeset **reserved, u64 start, u64 len);
Nikolay Borisov25ce28c2020-06-03 08:55:39 +030011void btrfs_free_reserved_data_space(struct btrfs_inode *inode,
Josef Bacik86736342019-06-19 15:12:00 -040012 struct extent_changeset *reserved, u64 start, u64 len);
Nikolay Borisov86d52922020-06-03 08:55:40 +030013void btrfs_delalloc_release_space(struct btrfs_inode *inode,
Josef Bacik86736342019-06-19 15:12:00 -040014 struct extent_changeset *reserved,
15 u64 start, u64 len, bool qgroup_free);
Nikolay Borisov9db5d512020-06-03 08:55:38 +030016void btrfs_free_reserved_data_space_noquota(struct btrfs_fs_info *fs_info,
Josef Bacik86736342019-06-19 15:12:00 -040017 u64 len);
18void btrfs_delalloc_release_metadata(struct btrfs_inode *inode, u64 num_bytes,
19 bool qgroup_free);
Nikolay Borisove5b7231e2020-06-03 08:55:42 +030020int btrfs_delalloc_reserve_space(struct btrfs_inode *inode,
Josef Bacik86736342019-06-19 15:12:00 -040021 struct extent_changeset **reserved, u64 start, u64 len);
22
23#endif /* BTRFS_DELALLOC_SPACE_H */