]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/btrfs/extent_map.h
Btrfs: Stop using radix trees for the block group cache
[karo-tx-linux.git] / fs / btrfs / extent_map.h
index 895789039ddd9faf9c36b15285292bb5e8805343..5a63b417034a305fd8b452ddc2303ba36739d458 100644 (file)
@@ -62,14 +62,15 @@ struct extent_state {
        struct list_head list;
 };
 
-#define EXTENT_BUFFER_SIZE(nr) (sizeof(struct extent_buffer) + \
-                              (nr - 1) * sizeof(struct page *))
 struct extent_buffer {
        u64 start;
        unsigned long len;
        atomic_t refs;
        int flags;
-       struct page *pages[];
+       struct list_head list;
+       struct list_head leak_list;
+       struct page *first_page;
+       unsigned long alloc_addr;
 };
 
 typedef struct extent_map *(get_extent_t)(struct inode *inode,
@@ -95,6 +96,10 @@ int extent_read_full_page(struct extent_map_tree *tree, struct page *page,
 void __init extent_map_init(void);
 void __exit extent_map_exit(void);
 int extent_clean_all_trees(struct extent_map_tree *tree);
+int clear_extent_bits(struct extent_map_tree *tree, u64 start, u64 end,
+                     int bits, gfp_t mask);
+int set_extent_bits(struct extent_map_tree *tree, u64 start, u64 end,
+                   int bits, gfp_t mask);
 int set_extent_uptodate(struct extent_map_tree *tree, u64 start, u64 end,
                        gfp_t mask);
 int set_extent_new(struct extent_map_tree *tree, u64 start, u64 end,