#define EXTENT_LOCKED (1 << 3)
#define EXTENT_NEW (1 << 4)
#define EXTENT_DELALLOC (1 << 5)
+#define EXTENT_DEFRAG (1 << 6)
+#define EXTENT_DEFRAG_DONE (1 << 7)
#define EXTENT_IOBITS (EXTENT_LOCKED | EXTENT_WRITEBACK)
struct list_head list;
};
+#define EXTENT_INLINE_PAGES 32
struct extent_buffer {
u64 start;
unsigned long len;
int flags;
struct list_head list;
struct list_head leak_list;
- struct page *first_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,
atomic_inc(&eb->refs);
}
-static inline u64 extent_buffer_blocknr(struct extent_buffer *eb)
-{
- return eb->start / 4096;
-}
-
int memcmp_extent_buffer(struct extent_buffer *eb, const void *ptrv,
unsigned long start,
unsigned long len);