btrfs: make btrfs_dec_test_first_ordered_pending take btrfs_inode
authorNikolay Borisov <nborisov@suse.com>
Wed, 3 Jun 2020 05:55:23 +0000 (08:55 +0300)
committerDavid Sterba <dsterba@suse.com>
Mon, 27 Jul 2020 10:55:33 +0000 (12:55 +0200)
It doesn't really need vfs_inode but btrfs_inode.

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 94ba524..20bb3a4 100644 (file)
@@ -7578,10 +7578,10 @@ static void __endio_write_update_ordered(struct inode *inode,
 
        while (ordered_offset < offset + bytes) {
                last_offset = ordered_offset;
-               if (btrfs_dec_test_first_ordered_pending(inode, &ordered,
-                                                          &ordered_offset,
-                                                          ordered_bytes,
-                                                          uptodate)) {
+               if (btrfs_dec_test_first_ordered_pending(BTRFS_I(inode), &ordered,
+                                                        &ordered_offset,
+                                                        ordered_bytes,
+                                                        uptodate)) {
                        btrfs_init_work(&ordered->work, finish_ordered_fn, NULL,
                                        NULL);
                        btrfs_queue_work(wq, &ordered->work);
index 855c60d..af1b444 100644 (file)
@@ -307,12 +307,12 @@ void btrfs_add_ordered_sum(struct btrfs_ordered_extent *entry,
  * file_offset is updated to one byte past the range that is recorded as
  * complete.  This allows you to walk forward in the file.
  */
-int btrfs_dec_test_first_ordered_pending(struct inode *inode,
+int btrfs_dec_test_first_ordered_pending(struct btrfs_inode *inode,
                                   struct btrfs_ordered_extent **cached,
                                   u64 *file_offset, u64 io_size, int uptodate)
 {
-       struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
-       struct btrfs_ordered_inode_tree *tree;
+       struct btrfs_fs_info *fs_info = inode->root->fs_info;
+       struct btrfs_ordered_inode_tree *tree = &inode->ordered_tree;
        struct rb_node *node;
        struct btrfs_ordered_extent *entry = NULL;
        int ret;
@@ -321,7 +321,6 @@ int btrfs_dec_test_first_ordered_pending(struct inode *inode,
        u64 dec_start;
        u64 to_dec;
 
-       tree = &BTRFS_I(inode)->ordered_tree;
        spin_lock_irqsave(&tree->lock, flags);
        node = tree_search(tree, *file_offset);
        if (!node) {
index 03865f7..c2432f0 100644 (file)
@@ -147,7 +147,7 @@ void btrfs_remove_ordered_extent(struct inode *inode,
 int btrfs_dec_test_ordered_pending(struct inode *inode,
                                   struct btrfs_ordered_extent **cached,
                                   u64 file_offset, u64 io_size, int uptodate);
-int btrfs_dec_test_first_ordered_pending(struct inode *inode,
+int btrfs_dec_test_first_ordered_pending(struct btrfs_inode *inode,
                                   struct btrfs_ordered_extent **cached,
                                   u64 *file_offset, u64 io_size,
                                   int uptodate);