diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-12-11 09:25:06 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:58 -0400 |
commit | 7bb86316c3961d1bc401ef184fd996f999556c7f (patch) | |
tree | e67de3b594cf680f295010095a71ed7e825cb757 /fs/btrfs/ctree.h | |
parent | 74493f7a59bfd4d1c7029c74ab2cd0e400612c6b (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.h | 41 |
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); | |||
544 | BTRFS_SETGET_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64); | 544 | BTRFS_SETGET_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64); |
545 | BTRFS_SETGET_FUNCS(ref_offset, struct btrfs_extent_ref, offset, 64); | 545 | BTRFS_SETGET_FUNCS(ref_offset, struct btrfs_extent_ref, offset, 64); |
546 | 546 | ||
547 | BTRFS_SETGET_STACK_FUNCS(ref_root, struct btrfs_extent_ref, root, 64); | 547 | BTRFS_SETGET_STACK_FUNCS(stack_ref_root, struct btrfs_extent_ref, root, 64); |
548 | BTRFS_SETGET_STACK_FUNCS(ref_generation, struct btrfs_extent_ref, | 548 | BTRFS_SETGET_STACK_FUNCS(stack_ref_generation, struct btrfs_extent_ref, |
549 | generation, 64); | 549 | generation, 64); |
550 | BTRFS_SETGET_STACK_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64); | 550 | BTRFS_SETGET_STACK_FUNCS(stack_ref_objectid, struct btrfs_extent_ref, |
551 | BTRFS_SETGET_STACK_FUNCS(ref_offset, struct btrfs_extent_ref, offset, 64); | 551 | objectid, 64); |
552 | BTRFS_SETGET_STACK_FUNCS(stack_ref_offset, struct btrfs_extent_ref, offset, 64); | ||
552 | 553 | ||
553 | BTRFS_SETGET_STACK_FUNCS(stack_extent_refs, struct btrfs_extent_item, | 554 | BTRFS_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); |
916 | int btrfs_inc_root_ref(struct btrfs_trans_handle *trans, | 917 | int btrfs_inc_root_ref(struct btrfs_trans_handle *trans, |
917 | struct btrfs_root *root); | 918 | struct btrfs_root *root, u64 owner_objectid); |
918 | struct extent_buffer *btrfs_alloc_free_block(struct btrfs_trans_handle *trans, | 919 | struct 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); |
923 | struct 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); | ||
932 | int 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); | ||
921 | int btrfs_alloc_extent(struct btrfs_trans_handle *trans, | 937 | int 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); |
925 | int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, | 943 | int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, |
926 | struct extent_buffer *buf); | 944 | struct extent_buffer *buf); |
927 | int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root | 945 | int 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); | ||
929 | int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans, | 949 | int 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); |
932 | int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, | 952 | int 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); | ||
935 | int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans, | 957 | int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans, |
936 | struct btrfs_root *root); | 958 | struct btrfs_root *root); |
937 | int btrfs_free_block_groups(struct btrfs_fs_info *info); | 959 | int 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); |
968 | int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path); | 990 | int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path); |
991 | int btrfs_prev_leaf(struct btrfs_root *root, struct btrfs_path *path); | ||
969 | int btrfs_leaf_free_space(struct btrfs_root *root, struct extent_buffer *leaf); | 992 | int btrfs_leaf_free_space(struct btrfs_root *root, struct extent_buffer *leaf); |
970 | int btrfs_drop_snapshot(struct btrfs_trans_handle *trans, struct btrfs_root | 993 | int btrfs_drop_snapshot(struct btrfs_trans_handle *trans, struct btrfs_root |
971 | *root); | 994 | *root); |