diff options
Diffstat (limited to 'fs/btrfs/extent_io.h')
-rw-r--r-- | fs/btrfs/extent_io.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h index c9d1908a1ae3..86f859b87a6e 100644 --- a/fs/btrfs/extent_io.h +++ b/fs/btrfs/extent_io.h | |||
@@ -18,6 +18,9 @@ | |||
18 | #define EXTENT_BOUNDARY (1 << 11) | 18 | #define EXTENT_BOUNDARY (1 << 11) |
19 | #define EXTENT_IOBITS (EXTENT_LOCKED | EXTENT_WRITEBACK) | 19 | #define EXTENT_IOBITS (EXTENT_LOCKED | EXTENT_WRITEBACK) |
20 | 20 | ||
21 | /* flags for bio submission */ | ||
22 | #define EXTENT_BIO_COMPRESSED 1 | ||
23 | |||
21 | /* | 24 | /* |
22 | * page->private values. Every page that is controlled by the extent | 25 | * page->private values. Every page that is controlled by the extent |
23 | * map has page->private set to one. | 26 | * map has page->private set to one. |
@@ -28,14 +31,17 @@ | |||
28 | struct extent_state; | 31 | struct extent_state; |
29 | 32 | ||
30 | typedef int (extent_submit_bio_hook_t)(struct inode *inode, int rw, | 33 | typedef int (extent_submit_bio_hook_t)(struct inode *inode, int rw, |
31 | struct bio *bio, int mirror_num); | 34 | struct bio *bio, int mirror_num, |
35 | unsigned long bio_flags); | ||
32 | struct extent_io_ops { | 36 | struct extent_io_ops { |
33 | int (*fill_delalloc)(struct inode *inode, u64 start, u64 end); | 37 | int (*fill_delalloc)(struct inode *inode, struct page *locked_page, |
38 | u64 start, u64 end, int *page_started); | ||
34 | int (*writepage_start_hook)(struct page *page, u64 start, u64 end); | 39 | int (*writepage_start_hook)(struct page *page, u64 start, u64 end); |
35 | int (*writepage_io_hook)(struct page *page, u64 start, u64 end); | 40 | int (*writepage_io_hook)(struct page *page, u64 start, u64 end); |
36 | extent_submit_bio_hook_t *submit_bio_hook; | 41 | extent_submit_bio_hook_t *submit_bio_hook; |
37 | int (*merge_bio_hook)(struct page *page, unsigned long offset, | 42 | int (*merge_bio_hook)(struct page *page, unsigned long offset, |
38 | size_t size, struct bio *bio); | 43 | size_t size, struct bio *bio, |
44 | unsigned long bio_flags); | ||
39 | int (*readpage_io_hook)(struct page *page, u64 start, u64 end); | 45 | int (*readpage_io_hook)(struct page *page, u64 start, u64 end); |
40 | int (*readpage_io_failed_hook)(struct bio *bio, struct page *page, | 46 | int (*readpage_io_failed_hook)(struct bio *bio, struct page *page, |
41 | u64 start, u64 end, | 47 | u64 start, u64 end, |
@@ -245,4 +251,9 @@ void unmap_extent_buffer(struct extent_buffer *eb, char *token, int km); | |||
245 | int release_extent_buffer_tail_pages(struct extent_buffer *eb); | 251 | int release_extent_buffer_tail_pages(struct extent_buffer *eb); |
246 | int extent_range_uptodate(struct extent_io_tree *tree, | 252 | int extent_range_uptodate(struct extent_io_tree *tree, |
247 | u64 start, u64 end); | 253 | u64 start, u64 end); |
254 | int extent_clear_unlock_delalloc(struct inode *inode, | ||
255 | struct extent_io_tree *tree, | ||
256 | u64 start, u64 end, struct page *locked_page, | ||
257 | int clear_dirty, int set_writeback, | ||
258 | int clear_writeback); | ||
248 | #endif | 259 | #endif |