summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_map.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-10-15 22:17:04 +0200
committerChris Mason <chris.mason@oracle.com>2008-09-25 17:03:56 +0200
commit09e71a326341f40111400c88aaf0498ef622824b (patch)
tree82e8f8a412a4403155fe17399456d2f8898715c0 /fs/btrfs/extent_map.h
parentBtrfs: Cache extent buffer mappings (diff)
downloadlinux-09e71a326341f40111400c88aaf0498ef622824b.tar.xz
linux-09e71a326341f40111400c88aaf0498ef622824b.zip
Btrfs: Use an array of pages in the extent buffers to reduce the cost of find_get_page
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/extent_map.h')
-rw-r--r--fs/btrfs/extent_map.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/extent_map.h b/fs/btrfs/extent_map.h
index 4ef8bdd68348..d74a2b3e3b5d 100644
--- a/fs/btrfs/extent_map.h
+++ b/fs/btrfs/extent_map.h
@@ -62,6 +62,7 @@ struct extent_state {
struct list_head list;
};
+#define EXTENT_INLINE_PAGES 32
struct extent_buffer {
u64 start;
unsigned long len;
@@ -69,13 +70,12 @@ struct extent_buffer {
int flags;
struct list_head list;
struct list_head leak_list;
- struct page *first_page;
- struct page *last_page;
unsigned long alloc_addr;
char *map_token;
char *kaddr;
unsigned long map_start;
unsigned long map_len;
+ struct page *pages[EXTENT_INLINE_PAGES];
};
typedef struct extent_map *(get_extent_t)(struct inode *inode,