diff options
Diffstat (limited to 'fs/btrfs/ref-cache.h')
-rw-r--r-- | fs/btrfs/ref-cache.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/btrfs/ref-cache.h b/fs/btrfs/ref-cache.h index 823c049f72f1..c361b321c0c3 100644 --- a/fs/btrfs/ref-cache.h +++ b/fs/btrfs/ref-cache.h | |||
@@ -30,6 +30,7 @@ struct btrfs_leaf_ref { | |||
30 | int in_tree; | 30 | int in_tree; |
31 | atomic_t usage; | 31 | atomic_t usage; |
32 | 32 | ||
33 | u64 root_gen; | ||
33 | u64 bytenr; | 34 | u64 bytenr; |
34 | u64 owner; | 35 | u64 owner; |
35 | u64 generation; | 36 | u64 generation; |
@@ -41,14 +42,13 @@ struct btrfs_leaf_ref { | |||
41 | 42 | ||
42 | static inline size_t btrfs_leaf_ref_size(int nr_extents) | 43 | static inline size_t btrfs_leaf_ref_size(int nr_extents) |
43 | { | 44 | { |
44 | return sizeof(struct btrfs_leaf_ref) + | 45 | return sizeof(struct btrfs_leaf_ref) + |
45 | sizeof(struct btrfs_extent_info) * nr_extents; | 46 | sizeof(struct btrfs_extent_info) * nr_extents; |
46 | } | 47 | } |
47 | 48 | ||
48 | static inline void btrfs_leaf_ref_tree_init(struct btrfs_leaf_ref_tree *tree) | 49 | static inline void btrfs_leaf_ref_tree_init(struct btrfs_leaf_ref_tree *tree) |
49 | { | 50 | { |
50 | tree->root.rb_node = NULL; | 51 | tree->root.rb_node = NULL; |
51 | tree->last = NULL; | ||
52 | INIT_LIST_HEAD(&tree->list); | 52 | INIT_LIST_HEAD(&tree->list); |
53 | spin_lock_init(&tree->lock); | 53 | spin_lock_init(&tree->lock); |
54 | } | 54 | } |
@@ -59,12 +59,13 @@ static inline int btrfs_leaf_ref_tree_empty(struct btrfs_leaf_ref_tree *tree) | |||
59 | } | 59 | } |
60 | 60 | ||
61 | void btrfs_leaf_ref_tree_init(struct btrfs_leaf_ref_tree *tree); | 61 | void btrfs_leaf_ref_tree_init(struct btrfs_leaf_ref_tree *tree); |
62 | struct btrfs_leaf_ref *btrfs_alloc_leaf_ref(int nr_extents); | 62 | struct btrfs_leaf_ref *btrfs_alloc_leaf_ref(struct btrfs_root *root, |
63 | void btrfs_free_leaf_ref(struct btrfs_leaf_ref *ref); | 63 | int nr_extents); |
64 | void btrfs_free_leaf_ref(struct btrfs_root *root, struct btrfs_leaf_ref *ref); | ||
64 | struct btrfs_leaf_ref *btrfs_lookup_leaf_ref(struct btrfs_root *root, | 65 | struct btrfs_leaf_ref *btrfs_lookup_leaf_ref(struct btrfs_root *root, |
65 | u64 bytenr); | 66 | u64 bytenr); |
66 | int btrfs_add_leaf_ref(struct btrfs_root *root, struct btrfs_leaf_ref *ref); | 67 | int btrfs_add_leaf_ref(struct btrfs_root *root, struct btrfs_leaf_ref *ref); |
67 | int btrfs_remove_leaf_refs(struct btrfs_root *root); | 68 | int btrfs_remove_leaf_refs(struct btrfs_root *root, u64 max_root_gen); |
68 | int btrfs_remove_leaf_ref(struct btrfs_root *root, struct btrfs_leaf_ref *ref); | 69 | int btrfs_remove_leaf_ref(struct btrfs_root *root, struct btrfs_leaf_ref *ref); |
69 | 70 | ||
70 | #endif | 71 | #endif |