btrfs: make btrfs_dec_test_ordered_pending take btrfs_inode
authorNikolay Borisov <nborisov@suse.com>
Mon, 31 Aug 2020 11:42:41 +0000 (14:42 +0300)
committerDavid Sterba <dsterba@suse.com>
Wed, 7 Oct 2020 10:12:18 +0000 (12:12 +0200)
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c
fs/btrfs/ordered-data.c
fs/btrfs/ordered-data.h

index 93063edc2d7bee1950e13be9d8bbe473bca2c6a2..8b50cad7ee8ff21a44bfb1d6c29f09eb26c0d956 100644 (file)
@@ -2781,8 +2781,8 @@ void btrfs_writepage_endio_finish_ordered(struct page *page, u64 start,
        trace_btrfs_writepage_end_io_hook(page, start, end, uptodate);
 
        ClearPagePrivate2(page);
-       if (!btrfs_dec_test_ordered_pending(inode, &ordered_extent, start,
-                                           end - start + 1, uptodate))
+       if (!btrfs_dec_test_ordered_pending(BTRFS_I(inode), &ordered_extent,
+                                           start, end - start + 1, uptodate))
                return;
 
        if (btrfs_is_free_space_inode(BTRFS_I(inode)))
@@ -8184,8 +8184,8 @@ again:
                                ordered->truncated_len = new_len;
                        spin_unlock_irq(&tree->lock);
 
-                       if (btrfs_dec_test_ordered_pending(inode, &ordered,
-                                                          start,
+                       if (btrfs_dec_test_ordered_pending(BTRFS_I(inode),
+                                                          &ordered, start,
                                                           end - start + 1, 1))
                                btrfs_finish_ordered_io(ordered);
                }
index 369ddad30d9c689d14c4595b189d1c92f7ec60bf..168a5edd939df83ceef9f6306d1ac43d0a9383ce 100644 (file)
@@ -378,17 +378,16 @@ out:
  * test_and_set_bit on a flag in the struct btrfs_ordered_extent is used
  * to make sure this function only returns 1 once for a given ordered extent.
  */
-int btrfs_dec_test_ordered_pending(struct inode *inode,
+int btrfs_dec_test_ordered_pending(struct btrfs_inode *inode,
                                   struct btrfs_ordered_extent **cached,
                                   u64 file_offset, u64 io_size, int uptodate)
 {
-       struct btrfs_ordered_inode_tree *tree;
+       struct btrfs_ordered_inode_tree *tree = &inode->ordered_tree;
        struct rb_node *node;
        struct btrfs_ordered_extent *entry = NULL;
        unsigned long flags;
        int ret;
 
-       tree = &BTRFS_I(inode)->ordered_tree;
        spin_lock_irqsave(&tree->lock, flags);
        if (cached && *cached) {
                entry = *cached;
@@ -409,7 +408,7 @@ have_entry:
        }
 
        if (io_size > entry->bytes_left) {
-               btrfs_crit(BTRFS_I(inode)->root->fs_info,
+               btrfs_crit(inode->root->fs_info,
                           "bad ordered accounting left %llu size %llu",
                       entry->bytes_left, io_size);
        }
index b287a2a403e62e570c0b68de1f5970b1771f523e..1610195c60974dfd1fa972c3b3e2e5cc221c3377 100644 (file)
@@ -153,7 +153,7 @@ btrfs_ordered_inode_tree_init(struct btrfs_ordered_inode_tree *t)
 void btrfs_put_ordered_extent(struct btrfs_ordered_extent *entry);
 void btrfs_remove_ordered_extent(struct inode *inode,
                                struct btrfs_ordered_extent *entry);
-int btrfs_dec_test_ordered_pending(struct inode *inode,
+int btrfs_dec_test_ordered_pending(struct btrfs_inode *inode,
                                   struct btrfs_ordered_extent **cached,
                                   u64 file_offset, u64 io_size, int uptodate);
 int btrfs_dec_test_first_ordered_pending(struct btrfs_inode *inode,