aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-12-11 09:25:06 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:03:58 -0400
commit7bb86316c3961d1bc401ef184fd996f999556c7f (patch)
treee67de3b594cf680f295010095a71ed7e825cb757 /fs/btrfs/ctree.h
parent74493f7a59bfd4d1c7029c74ab2cd0e400612c6b (diff)
Btrfs: Add back pointers from extents to the btree or file referencing them
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r--fs/btrfs/ctree.h41
1 files changed, 32 insertions, 9 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index fd58dd846e61..cb1b156d954e 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -544,11 +544,12 @@ BTRFS_SETGET_FUNCS(ref_generation, struct btrfs_extent_ref, generation, 64);
544BTRFS_SETGET_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64); 544BTRFS_SETGET_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64);
545BTRFS_SETGET_FUNCS(ref_offset, struct btrfs_extent_ref, offset, 64); 545BTRFS_SETGET_FUNCS(ref_offset, struct btrfs_extent_ref, offset, 64);
546 546
547BTRFS_SETGET_STACK_FUNCS(ref_root, struct btrfs_extent_ref, root, 64); 547BTRFS_SETGET_STACK_FUNCS(stack_ref_root, struct btrfs_extent_ref, root, 64);
548BTRFS_SETGET_STACK_FUNCS(ref_generation, struct btrfs_extent_ref, 548BTRFS_SETGET_STACK_FUNCS(stack_ref_generation, struct btrfs_extent_ref,
549 generation, 64); 549 generation, 64);
550BTRFS_SETGET_STACK_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64); 550BTRFS_SETGET_STACK_FUNCS(stack_ref_objectid, struct btrfs_extent_ref,
551BTRFS_SETGET_STACK_FUNCS(ref_offset, struct btrfs_extent_ref, offset, 64); 551 objectid, 64);
552BTRFS_SETGET_STACK_FUNCS(stack_ref_offset, struct btrfs_extent_ref, offset, 64);
552 553
553BTRFS_SETGET_STACK_FUNCS(stack_extent_refs, struct btrfs_extent_item, 554BTRFS_SETGET_STACK_FUNCS(stack_extent_refs, struct btrfs_extent_item,
554 refs, 32); 555 refs, 32);
@@ -914,24 +915,45 @@ struct btrfs_block_group_cache *btrfs_find_block_group(struct btrfs_root *root,
914 *hint, u64 search_start, 915 *hint, u64 search_start,
915 int data, int owner); 916 int data, int owner);
916int btrfs_inc_root_ref(struct btrfs_trans_handle *trans, 917int btrfs_inc_root_ref(struct btrfs_trans_handle *trans,
917 struct btrfs_root *root); 918 struct btrfs_root *root, u64 owner_objectid);
918struct extent_buffer *btrfs_alloc_free_block(struct btrfs_trans_handle *trans, 919struct extent_buffer *btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
919 struct btrfs_root *root, u32 size, 920 struct btrfs_root *root, u32 size,
921 u64 root_objectid,
920 u64 hint, u64 empty_size); 922 u64 hint, u64 empty_size);
923struct extent_buffer *__btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
924 struct btrfs_root *root,
925 u32 blocksize,
926 u64 root_objectid,
927 u64 ref_generation,
928 u64 first_objectid,
929 int level,
930 u64 hint,
931 u64 empty_size);
932int btrfs_insert_extent_backref(struct btrfs_trans_handle *trans,
933 struct btrfs_root *root,
934 struct btrfs_path *path, u64 bytenr,
935 u64 root_objectid, u64 ref_generation,
936 u64 owner, u64 owner_offset);
921int btrfs_alloc_extent(struct btrfs_trans_handle *trans, 937int btrfs_alloc_extent(struct btrfs_trans_handle *trans,
922 struct btrfs_root *root, u64 owner, 938 struct btrfs_root *root,
923 u64 num_bytes, u64 empty_size, u64 search_start, 939 u64 num_bytes, u64 root_objectid, u64 ref_generation,
940 u64 owner, u64 owner_offset,
941 u64 empty_size, u64 hint_byte,
924 u64 search_end, struct btrfs_key *ins, int data); 942 u64 search_end, struct btrfs_key *ins, int data);
925int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, 943int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root,
926 struct extent_buffer *buf); 944 struct extent_buffer *buf);
927int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root 945int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root
928 *root, u64 bytenr, u64 num_bytes, int pin); 946 *root, u64 bytenr, u64 num_bytes,
947 u64 root_objectid, u64 ref_generation,
948 u64 owner_objectid, u64 owner_offset, int pin);
929int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans, 949int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans,
930 struct btrfs_root *root, 950 struct btrfs_root *root,
931 struct extent_map_tree *unpin); 951 struct extent_map_tree *unpin);
932int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, 952int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
933 struct btrfs_root *root, 953 struct btrfs_root *root,
934 u64 bytenr, u64 num_bytes); 954 u64 bytenr, u64 num_bytes,
955 u64 root_objectid, u64 ref_generation,
956 u64 owner, u64 owner_offset);
935int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans, 957int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans,
936 struct btrfs_root *root); 958 struct btrfs_root *root);
937int btrfs_free_block_groups(struct btrfs_fs_info *info); 959int btrfs_free_block_groups(struct btrfs_fs_info *info);
@@ -966,6 +988,7 @@ int btrfs_insert_empty_item(struct btrfs_trans_handle *trans, struct btrfs_root
966 *root, struct btrfs_path *path, struct btrfs_key 988 *root, struct btrfs_path *path, struct btrfs_key
967 *cpu_key, u32 data_size); 989 *cpu_key, u32 data_size);
968int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path); 990int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path);
991int btrfs_prev_leaf(struct btrfs_root *root, struct btrfs_path *path);
969int btrfs_leaf_free_space(struct btrfs_root *root, struct extent_buffer *leaf); 992int btrfs_leaf_free_space(struct btrfs_root *root, struct extent_buffer *leaf);
970int btrfs_drop_snapshot(struct btrfs_trans_handle *trans, struct btrfs_root 993int btrfs_drop_snapshot(struct btrfs_trans_handle *trans, struct btrfs_root
971 *root); 994 *root);