void *private_data;
        struct bio *bio;
        extent_submit_bio_start_t *submit_bio_start;
-       extent_submit_bio_done_t *submit_bio_done;
        int mirror_num;
        /*
         * bio_offset is optional, can be used if the pages in the bio
                return;
        }
 
-       async->submit_bio_done(async->private_data, async->bio, async->mirror_num);
+       btrfs_submit_bio_done(async->private_data, async->bio, async->mirror_num);
 }
 
 static void run_one_async_free(struct btrfs_work *work)
 blk_status_t btrfs_wq_submit_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
                                 int mirror_num, unsigned long bio_flags,
                                 u64 bio_offset, void *private_data,
-                                extent_submit_bio_start_t *submit_bio_start,
-                                extent_submit_bio_done_t *submit_bio_done)
+                                extent_submit_bio_start_t *submit_bio_start)
 {
        struct async_submit_bio *async;
 
        async->bio = bio;
        async->mirror_num = mirror_num;
        async->submit_bio_start = submit_bio_start;
-       async->submit_bio_done = submit_bio_done;
 
        btrfs_init_work(&async->work, btrfs_worker_helper, run_one_async_start,
                        run_one_async_done, run_one_async_free);
        return btree_csum_one_bio(bio);
 }
 
-static blk_status_t btree_submit_bio_done(void *private_data, struct bio *bio,
-                                           int mirror_num)
-{
-       struct inode *inode = private_data;
-       blk_status_t ret;
-
-       /*
-        * when we're called for a write, we're already in the async
-        * submission context.  Just jump into btrfs_map_bio
-        */
-       ret = btrfs_map_bio(btrfs_sb(inode->i_sb), bio, mirror_num, 1);
-       if (ret) {
-               bio->bi_status = ret;
-               bio_endio(bio);
-       }
-       return ret;
-}
-
 static int check_async_write(struct btrfs_inode *bi)
 {
        if (atomic_read(&bi->sync_writers))
                 */
                ret = btrfs_wq_submit_bio(fs_info, bio, mirror_num, 0,
                                          bio_offset, private_data,
-                                         btree_submit_bio_start,
-                                         btree_submit_bio_done);
+                                         btree_submit_bio_start);
        }
 
        if (ret)
 
 blk_status_t btrfs_wq_submit_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
                        int mirror_num, unsigned long bio_flags,
                        u64 bio_offset, void *private_data,
-                       extent_submit_bio_start_t *submit_bio_start,
-                       extent_submit_bio_done_t *submit_bio_done);
+                       extent_submit_bio_start_t *submit_bio_start);
+blk_status_t btrfs_submit_bio_done(void *private_data, struct bio *bio,
+                         int mirror_num);
 int btrfs_write_tree_block(struct extent_buffer *buf);
 void btrfs_wait_tree_block_writeback(struct extent_buffer *buf);
 int btrfs_init_log_root_tree(struct btrfs_trans_handle *trans,
 
  * At IO completion time the cums attached on the ordered extent record
  * are inserted into the btree
  */
-static blk_status_t btrfs_submit_bio_done(void *private_data, struct bio *bio,
+blk_status_t btrfs_submit_bio_done(void *private_data, struct bio *bio,
                          int mirror_num)
 {
        struct inode *inode = private_data;
                /* we're doing a write, do the async checksumming */
                ret = btrfs_wq_submit_bio(fs_info, bio, mirror_num, bio_flags,
                                          bio_offset, inode,
-                                         btrfs_submit_bio_start,
-                                         btrfs_submit_bio_done);
+                                         btrfs_submit_bio_start);
                goto out;
        } else if (!skip_sum) {
                ret = btrfs_csum_one_bio(inode, bio, 0, 0);
        if (write && async_submit) {
                ret = btrfs_wq_submit_bio(fs_info, bio, 0, 0,
                                          file_offset, inode,
-                                         btrfs_submit_bio_start_direct_io,
-                                         btrfs_submit_bio_done);
+                                         btrfs_submit_bio_start_direct_io);
                goto err;
        } else if (write) {
                /*