Btrfs: send, build path string only once in send_hole
[cascardo/linux.git] / fs / btrfs / extent_map.h
index 93fba71..e7fd8a5 100644 (file)
@@ -33,7 +33,6 @@ struct extent_map {
        unsigned long flags;
        struct block_device *bdev;
        atomic_t refs;
-       unsigned int in_tree;
        unsigned int compress_type;
        struct list_head list;
 };
@@ -44,6 +43,11 @@ struct extent_map_tree {
        rwlock_t lock;
 };
 
+static inline int extent_map_in_tree(const struct extent_map *em)
+{
+       return !RB_EMPTY_NODE(&em->rb_node);
+}
+
 static inline u64 extent_map_end(struct extent_map *em)
 {
        if (em->start + em->len < em->start)
@@ -64,6 +68,10 @@ struct extent_map *lookup_extent_mapping(struct extent_map_tree *tree,
 int add_extent_mapping(struct extent_map_tree *tree,
                       struct extent_map *em, int modified);
 int remove_extent_mapping(struct extent_map_tree *tree, struct extent_map *em);
+void replace_extent_mapping(struct extent_map_tree *tree,
+                           struct extent_map *cur,
+                           struct extent_map *new,
+                           int modified);
 
 struct extent_map *alloc_extent_map(void);
 void free_extent_map(struct extent_map *em);