]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: make btrfs_reloc_clone_csums take btrfs_inode
authorNikolay Borisov <nborisov@suse.com>
Wed, 3 Jun 2020 05:55:04 +0000 (08:55 +0300)
committerDavid Sterba <dsterba@suse.com>
Mon, 27 Jul 2020 10:55:26 +0000 (12:55 +0200)
It really wants btrfs_inode and not a vfs 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/ctree.h
fs/btrfs/inode.c
fs/btrfs/relocation.c

index 9138c40be7556aa4453fe310c03e7e5c33966e7f..8fd063ca081b7f1cc586f4070076df00c8bef6b9 100644 (file)
@@ -3430,7 +3430,7 @@ int btrfs_init_reloc_root(struct btrfs_trans_handle *trans,
 int btrfs_update_reloc_root(struct btrfs_trans_handle *trans,
                            struct btrfs_root *root);
 int btrfs_recover_relocation(struct btrfs_root *root);
-int btrfs_reloc_clone_csums(struct inode *inode, u64 file_pos, u64 len);
+int btrfs_reloc_clone_csums(struct btrfs_inode *inode, u64 file_pos, u64 len);
 int btrfs_reloc_cow_block(struct btrfs_trans_handle *trans,
                          struct btrfs_root *root, struct extent_buffer *buf,
                          struct extent_buffer *cow);
index bd69367452c823f26c077d749f4a0e16f8c4a587..ba7d2043fb96fc80f7dfd1116541cf514740c5a2 100644 (file)
@@ -1085,7 +1085,7 @@ static noinline int cow_file_range(struct inode *inode,
 
                if (root->root_key.objectid ==
                    BTRFS_DATA_RELOC_TREE_OBJECTID) {
-                       ret = btrfs_reloc_clone_csums(inode, start,
+                       ret = btrfs_reloc_clone_csums(BTRFS_I(inode), start,
                                                      cur_alloc_size);
                        /*
                         * Only drop cache here, and process as normal.
@@ -1743,7 +1743,7 @@ out_check:
                         * extent_clear_unlock_delalloc() in error handler
                         * from freeing metadata of created ordered extent.
                         */
-                       ret = btrfs_reloc_clone_csums(inode, cur_offset,
+                       ret = btrfs_reloc_clone_csums(BTRFS_I(inode), cur_offset,
                                                      num_bytes);
 
                extent_clear_unlock_delalloc(inode, cur_offset,
index 8051aec5378ee6473e8365df623ed0229ae91ce0..9235c671bef875a7fab325f62148f95559dc4ab9 100644 (file)
@@ -3870,9 +3870,9 @@ out:
  * cloning checksum properly handles the nodatasum extents.
  * it also saves CPU time to re-calculate the checksum.
  */
-int btrfs_reloc_clone_csums(struct inode *inode, u64 file_pos, u64 len)
+int btrfs_reloc_clone_csums(struct btrfs_inode *inode, u64 file_pos, u64 len)
 {
-       struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
+       struct btrfs_fs_info *fs_info = inode->root->fs_info;
        struct btrfs_ordered_sum *sums;
        struct btrfs_ordered_extent *ordered;
        int ret;
@@ -3880,10 +3880,10 @@ int btrfs_reloc_clone_csums(struct inode *inode, u64 file_pos, u64 len)
        u64 new_bytenr;
        LIST_HEAD(list);
 
-       ordered = btrfs_lookup_ordered_extent(BTRFS_I(inode), file_pos);
+       ordered = btrfs_lookup_ordered_extent(inode, file_pos);
        BUG_ON(ordered->file_offset != file_pos || ordered->num_bytes != len);
 
-       disk_bytenr = file_pos + BTRFS_I(inode)->index_cnt;
+       disk_bytenr = file_pos + inode->index_cnt;
        ret = btrfs_lookup_csums_range(fs_info->csum_root, disk_bytenr,
                                       disk_bytenr + len - 1, &list, 0);
        if (ret)