return ret;
 }
 
-static int relocate_file_extent_cluster(struct inode *inode,
-                                       const struct file_extent_cluster *cluster)
+static int relocate_file_extent_cluster(struct reloc_control *rc)
 {
+       struct inode *inode = rc->data_inode;
+       const struct file_extent_cluster *cluster = &rc->cluster;
        u64 offset = BTRFS_I(inode)->reloc_block_group_start;
        unsigned long index;
        unsigned long last_index;
        struct btrfs_root *root = BTRFS_I(inode)->root;
 
        if (cluster->nr > 0 && extent_key->objectid != cluster->end + 1) {
-               ret = relocate_file_extent_cluster(inode, cluster);
+               ret = relocate_file_extent_cluster(rc);
                if (ret)
                        return ret;
                cluster->nr = 0;
                 * the cluster we need to relocate.
                 */
                root->relocation_src_root = cluster->owning_root;
-               ret = relocate_file_extent_cluster(inode, cluster);
+               ret = relocate_file_extent_cluster(rc);
                if (ret)
                        return ret;
                cluster->nr = 0;
        cluster->nr++;
 
        if (cluster->nr >= MAX_EXTENTS) {
-               ret = relocate_file_extent_cluster(inode, cluster);
+               ret = relocate_file_extent_cluster(rc);
                if (ret)
                        return ret;
                cluster->nr = 0;
        }
 
        if (!err) {
-               ret = relocate_file_extent_cluster(rc->data_inode,
-                                                  &rc->cluster);
+               ret = relocate_file_extent_cluster(rc);
                if (ret < 0)
                        err = ret;
        }