aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorYan, Zheng <zheng.yan@oracle.com>2010-05-16 10:48:47 -0400
committerChris Mason <chris.mason@oracle.com>2010-05-25 10:34:51 -0400
commit0ca1f7ceb1991099ed5273885ebcf4323948c72e (patch)
tree10758d6a55c529aced177da3f6bf45cf26361913 /fs/btrfs/ctree.h
parenta22285a6a32390195235171b89d157ed1a1fe932 (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.h19
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,
2079u64 btrfs_reduce_alloc_profile(struct btrfs_root *root, u64 flags); 2079u64 btrfs_reduce_alloc_profile(struct btrfs_root *root, u64 flags);
2080void btrfs_set_inode_space_info(struct btrfs_root *root, struct inode *ionde); 2080void btrfs_set_inode_space_info(struct btrfs_root *root, struct inode *ionde);
2081void btrfs_clear_space_info_full(struct btrfs_fs_info *info); 2081void btrfs_clear_space_info_full(struct btrfs_fs_info *info);
2082 2082int btrfs_check_data_free_space(struct inode *inode, u64 bytes);
2083int btrfs_unreserve_metadata_for_delalloc(struct btrfs_root *root, 2083void btrfs_free_reserved_data_space(struct inode *inode, u64 bytes);
2084 struct inode *inode, int num_items);
2085int btrfs_reserve_metadata_for_delalloc(struct btrfs_root *root,
2086 struct inode *inode, int num_items);
2087int btrfs_check_data_free_space(struct btrfs_root *root, struct inode *inode,
2088 u64 bytes);
2089void btrfs_free_reserved_data_space(struct btrfs_root *root,
2090 struct inode *inode, u64 bytes);
2091void btrfs_delalloc_reserve_space(struct btrfs_root *root, struct inode *inode,
2092 u64 bytes);
2093void btrfs_delalloc_free_space(struct btrfs_root *root, struct inode *inode,
2094 u64 bytes);
2095int btrfs_trans_reserve_metadata(struct btrfs_trans_handle *trans, 2084int 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);
2100int btrfs_snap_reserve_metadata(struct btrfs_trans_handle *trans, 2089int btrfs_snap_reserve_metadata(struct btrfs_trans_handle *trans,
2101 struct btrfs_pending_snapshot *pending); 2090 struct btrfs_pending_snapshot *pending);
2091int btrfs_delalloc_reserve_metadata(struct inode *inode, u64 num_bytes);
2092void btrfs_delalloc_release_metadata(struct inode *inode, u64 num_bytes);
2093int btrfs_delalloc_reserve_space(struct inode *inode, u64 num_bytes);
2094void btrfs_delalloc_release_space(struct inode *inode, u64 num_bytes);
2102void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv); 2095void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv);
2103struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root); 2096struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_root *root);
2104void btrfs_free_block_rsv(struct btrfs_root *root, 2097void btrfs_free_block_rsv(struct btrfs_root *root,