btrfs: add assertions for tree == inode->io_tree to extent IO helpers
authorDavid Sterba <dsterba@suse.com>
Wed, 5 Feb 2020 18:09:30 +0000 (19:09 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 23 Mar 2020 16:01:34 +0000 (17:01 +0100)
Add assertions to all helpers that get tree as argument and verify that
it's the same that can be obtained from the inode or from its pages. In
followup patches the redundant arguments and assertions will be removed
one by one.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c
fs/btrfs/ordered-data.c

index 399e9fc2545ed473597e8d180b2fc3da21b97a0e..7a2f657f5dbdcad4f9998252dd9bbce579a72378 100644 (file)
@@ -3134,6 +3134,8 @@ static int __do_readpage(struct extent_io_tree *tree,
        size_t blocksize = inode->i_sb->s_blocksize;
        unsigned long this_bio_flag = 0;
 
+       ASSERT(tree == &BTRFS_I(inode)->io_tree);
+
        set_page_extent_mapped(page);
 
        if (!PageUptodate(page)) {
@@ -3327,6 +3329,8 @@ static inline void contiguous_readpages(struct extent_io_tree *tree,
        struct btrfs_inode *inode = BTRFS_I(pages[0]->mapping->host);
        int index;
 
+       ASSERT(tree == &inode->io_tree);
+
        btrfs_lock_and_flush_ordered_range(tree, inode, start, end, NULL);
 
        for (index = 0; index < nr_pages; index++) {
@@ -3348,6 +3352,8 @@ static int __extent_read_full_page(struct extent_io_tree *tree,
        u64 end = start + PAGE_SIZE - 1;
        int ret;
 
+       ASSERT(tree == &inode->io_tree);
+
        btrfs_lock_and_flush_ordered_range(tree, inode, start, end, NULL);
 
        ret = __do_readpage(tree, page, get_extent, NULL, bio, mirror_num,
@@ -3362,6 +3368,8 @@ int extent_read_full_page(struct extent_io_tree *tree, struct page *page,
        unsigned long bio_flags = 0;
        int ret;
 
+       ASSERT(tree == &BTRFS_I(page->mapping->host)->io_tree);
+
        ret = __extent_read_full_page(tree, page, get_extent, &bio, mirror_num,
                                      &bio_flags, 0);
        if (bio)
@@ -5449,6 +5457,8 @@ int read_extent_buffer_pages(struct extent_buffer *eb, int wait, int mirror_num)
        if (test_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags))
                return 0;
 
+       ASSERT(tree == &BTRFS_I(eb->pages[0]->mapping->host)->io_tree);
+
        num_pages = num_extent_pages(eb);
        for (i = 0; i < num_pages; i++) {
                page = eb->pages[i];
index 63298184864989e40e136253d6c321b0e18da2d7..f47accad6f052c5b6492da8f5f3fa2760ee16af9 100644 (file)
@@ -854,6 +854,8 @@ void btrfs_lock_and_flush_ordered_range(struct extent_io_tree *tree,
        struct extent_state *cache = NULL;
        struct extent_state **cachedp = &cache;
 
+       ASSERT(tree == &inode->io_tree);
+
        if (cached_state)
                cachedp = cached_state;