diff options
author | Yan, Zheng <zheng.yan@oracle.com> | 2010-05-16 10:48:47 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2010-05-25 10:34:51 -0400 |
commit | 0ca1f7ceb1991099ed5273885ebcf4323948c72e (patch) | |
tree | 10758d6a55c529aced177da3f6bf45cf26361913 /fs/btrfs/ctree.h | |
parent | a22285a6a32390195235171b89d157ed1a1fe932 (diff) |
Btrfs: Update metadata reservation for delayed allocation
Introduce metadata reservation context for delayed allocation
and update various related functions.
This patch also introduces EXTENT_FIRST_DELALLOC control bit for
set/clear_extent_bit. It tells set/clear_bit_hook whether they
are processing the first extent_state with EXTENT_DELALLOC bit
set. This change is important if set/clear_extent_bit involves
multiple extent_state.
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index e0aa9fb563e2..d4744192eada 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -2079,19 +2079,8 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans, | |||
2079 | u64 btrfs_reduce_alloc_profile(struct btrfs_root *root, u64 flags); | 2079 | u64 btrfs_reduce_alloc_profile(struct btrfs_root *root, u64 flags); |
2080 | void btrfs_set_inode_space_info(struct btrfs_root *root, struct inode *ionde); | 2080 | void btrfs_set_inode_space_info(struct btrfs_root *root, struct inode *ionde); |
2081 | void btrfs_clear_space_info_full(struct btrfs_fs_info *info); | 2081 | void btrfs_clear_space_info_full(struct btrfs_fs_info *info); |
2082 | 2082 | int btrfs_check_data_free_space(struct inode *inode, u64 bytes); | |
2083 | int btrfs_unreserve_metadata_for_delalloc(struct btrfs_root *root, | 2083 | void btrfs_free_reserved_data_space(struct inode *inode, u64 bytes); |
2084 | struct inode *inode, int num_items); | ||
2085 | int btrfs_reserve_metadata_for_delalloc(struct btrfs_root *root, | ||
2086 | struct inode *inode, int num_items); | ||
2087 | int btrfs_check_data_free_space(struct btrfs_root *root, struct inode *inode, | ||
2088 | u64 bytes); | ||
2089 | void btrfs_free_reserved_data_space(struct btrfs_root *root, | ||
2090 | struct inode *inode, u64 bytes); | ||
2091 | void btrfs_delalloc_reserve_space(struct btrfs_root *root, struct inode *inode, | ||
2092 | u64 bytes); | ||
2093 | void btrfs_delalloc_free_space(struct btrfs_root *root, struct inode *inode, | ||
2094 | u64 bytes); | ||
2095 | int btrfs_trans_reserve_metadata(struct btrfs_trans_handle *trans, | 2084 | int btrfs_trans_reserve_metadata(struct btrfs_trans_handle *trans, |
2096 | struct btrfs_root *root, | 2085 | struct btrfs_root *root, |
2097 | int num_items, int *retries); | 2086 | int num_items, int *retries); |
@@ -2099,6 +2088,10 @@ void btrfs_trans_release_metadata(struct btrfs_trans_handle *trans, | |||
2099 | struct btrfs_root *root); | 2088 | struct btrfs_root *root); |
2100 | int btrfs_snap_reserve_metadata(struct btrfs_trans_handle *trans, | 2089 | int btrfs_snap_reserve_metadata(struct btrfs_trans_handle *trans, |
2101 | struct btrfs_pending_snapshot *pending); | 2090 | struct btrfs_pending_snapshot *pending); |
2091 | int btrfs_delalloc_reserve_metadata(struct inode *inode, u64 num_bytes); | ||
2092 | void btrfs_delalloc_release_metadata(struct inode *inode, u64 num_bytes); | ||
2093 | int btrfs_delalloc_reserve_space(struct inode *inode, u64 num_bytes); | ||
2094 | void btrfs_delalloc_release_space(struct inode *inode, u64 num_bytes); | ||
2102 | void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv); | 2095 | void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv); |
2103 | struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root); | 2096 | struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root); |
2104 | void btrfs_free_block_rsv(struct btrfs_root *root, | 2097 | void btrfs_free_block_rsv(struct btrfs_root *root, |