Merge tag 'for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
[muen/linux.git] / fs / btrfs / extent_io.c
index 56d32bb462f941d6890f8a6b80226ee3f1381eb0..51fc015c7d2c69bd198e94c3ffc4b2ef267f7ef2 100644 (file)
@@ -4106,14 +4106,13 @@ int extent_write_locked_range(struct inode *inode, u64 start, u64 end,
        return ret;
 }
 
        return ret;
 }
 
-int extent_writepages(struct extent_io_tree *tree,
-                     struct address_space *mapping,
+int extent_writepages(struct address_space *mapping,
                      struct writeback_control *wbc)
 {
        int ret = 0;
        struct extent_page_data epd = {
                .bio = NULL,
                      struct writeback_control *wbc)
 {
        int ret = 0;
        struct extent_page_data epd = {
                .bio = NULL,
-               .tree = tree,
+               .tree = &BTRFS_I(mapping->host)->io_tree,
                .extent_locked = 0,
                .sync_io = wbc->sync_mode == WB_SYNC_ALL,
        };
                .extent_locked = 0,
                .sync_io = wbc->sync_mode == WB_SYNC_ALL,
        };
@@ -4123,9 +4122,8 @@ int extent_writepages(struct extent_io_tree *tree,
        return ret;
 }
 
        return ret;
 }
 
-int extent_readpages(struct extent_io_tree *tree,
-                    struct address_space *mapping,
-                    struct list_head *pages, unsigned nr_pages)
+int extent_readpages(struct address_space *mapping, struct list_head *pages,
+                    unsigned nr_pages)
 {
        struct bio *bio = NULL;
        unsigned page_idx;
 {
        struct bio *bio = NULL;
        unsigned page_idx;
@@ -4133,6 +4131,7 @@ int extent_readpages(struct extent_io_tree *tree,
        struct page *pagepool[16];
        struct page *page;
        struct extent_map *em_cached = NULL;
        struct page *pagepool[16];
        struct page *page;
        struct extent_map *em_cached = NULL;
+       struct extent_io_tree *tree = &BTRFS_I(mapping->host)->io_tree;
        int nr = 0;
        u64 prev_em_start = (u64)-1;
 
        int nr = 0;
        u64 prev_em_start = (u64)-1;
 
@@ -4199,8 +4198,7 @@ int extent_invalidatepage(struct extent_io_tree *tree,
  * are locked or under IO and drops the related state bits if it is safe
  * to drop the page.
  */
  * are locked or under IO and drops the related state bits if it is safe
  * to drop the page.
  */
-static int try_release_extent_state(struct extent_map_tree *map,
-                                   struct extent_io_tree *tree,
+static int try_release_extent_state(struct extent_io_tree *tree,
                                    struct page *page, gfp_t mask)
 {
        u64 start = page_offset(page);
                                    struct page *page, gfp_t mask)
 {
        u64 start = page_offset(page);
@@ -4235,13 +4233,13 @@ static int try_release_extent_state(struct extent_map_tree *map,
  * in the range corresponding to the page, both state records and extent
  * map records are removed
  */
  * in the range corresponding to the page, both state records and extent
  * map records are removed
  */
-int try_release_extent_mapping(struct extent_map_tree *map,
-                              struct extent_io_tree *tree, struct page *page,
-                              gfp_t mask)
+int try_release_extent_mapping(struct page *page, gfp_t mask)
 {
        struct extent_map *em;
        u64 start = page_offset(page);
        u64 end = start + PAGE_SIZE - 1;
 {
        struct extent_map *em;
        u64 start = page_offset(page);
        u64 end = start + PAGE_SIZE - 1;
+       struct extent_io_tree *tree = &BTRFS_I(page->mapping->host)->io_tree;
+       struct extent_map_tree *map = &BTRFS_I(page->mapping->host)->extent_tree;
 
        if (gfpflags_allow_blocking(mask) &&
            page->mapping->host->i_size > SZ_16M) {
 
        if (gfpflags_allow_blocking(mask) &&
            page->mapping->host->i_size > SZ_16M) {
@@ -4275,7 +4273,7 @@ int try_release_extent_mapping(struct extent_map_tree *map,
                        free_extent_map(em);
                }
        }
                        free_extent_map(em);
                }
        }
-       return try_release_extent_state(map, tree, page, mask);
+       return try_release_extent_state(tree, page, mask);
 }
 
 /*
 }
 
 /*
@@ -5617,46 +5615,6 @@ void copy_extent_buffer(struct extent_buffer *dst, struct extent_buffer *src,
        }
 }
 
        }
 }
 
-void le_bitmap_set(u8 *map, unsigned int start, int len)
-{
-       u8 *p = map + BIT_BYTE(start);
-       const unsigned int size = start + len;
-       int bits_to_set = BITS_PER_BYTE - (start % BITS_PER_BYTE);
-       u8 mask_to_set = BITMAP_FIRST_BYTE_MASK(start);
-
-       while (len - bits_to_set >= 0) {
-               *p |= mask_to_set;
-               len -= bits_to_set;
-               bits_to_set = BITS_PER_BYTE;
-               mask_to_set = ~0;
-               p++;
-       }
-       if (len) {
-               mask_to_set &= BITMAP_LAST_BYTE_MASK(size);
-               *p |= mask_to_set;
-       }
-}
-
-void le_bitmap_clear(u8 *map, unsigned int start, int len)
-{
-       u8 *p = map + BIT_BYTE(start);
-       const unsigned int size = start + len;
-       int bits_to_clear = BITS_PER_BYTE - (start % BITS_PER_BYTE);
-       u8 mask_to_clear = BITMAP_FIRST_BYTE_MASK(start);
-
-       while (len - bits_to_clear >= 0) {
-               *p &= ~mask_to_clear;
-               len -= bits_to_clear;
-               bits_to_clear = BITS_PER_BYTE;
-               mask_to_clear = ~0;
-               p++;
-       }
-       if (len) {
-               mask_to_clear &= BITMAP_LAST_BYTE_MASK(size);
-               *p &= ~mask_to_clear;
-       }
-}
-
 /*
  * eb_bitmap_offset() - calculate the page and offset of the byte containing the
  * given bit number
 /*
  * eb_bitmap_offset() - calculate the page and offset of the byte containing the
  * given bit number