u64 ram_bytes, int compress_type,
                                       int type);
 
-static void __endio_write_update_ordered(struct inode *inode,
+static void __endio_write_update_ordered(struct btrfs_inode *inode,
                                         const u64 offset, const u64 bytes,
                                         const bool uptodate);
 
                bytes -= PAGE_SIZE;
        }
 
-       return __endio_write_update_ordered(inode, offset, bytes, false);
+       return __endio_write_update_ordered(BTRFS_I(inode), offset, bytes,
+                                           false);
 }
 
 static int btrfs_dirty_inode(struct inode *inode);
                return;
 
        if (bio_op(dip->dio_bio) == REQ_OP_WRITE) {
-               __endio_write_update_ordered(dip->inode, dip->logical_offset,
+               __endio_write_update_ordered(BTRFS_I(dip->inode),
+                                            dip->logical_offset,
                                             dip->bytes,
                                             !dip->dio_bio->bi_status);
        } else {
        return err;
 }
 
-static void __endio_write_update_ordered(struct inode *inode,
+static void __endio_write_update_ordered(struct btrfs_inode *inode,
                                         const u64 offset, const u64 bytes,
                                         const bool uptodate)
 {
-       struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
+       struct btrfs_fs_info *fs_info = inode->root->fs_info;
        struct btrfs_ordered_extent *ordered = NULL;
        struct btrfs_workqueue *wq;
        u64 ordered_offset = offset;
        u64 ordered_bytes = bytes;
        u64 last_offset;
 
-       if (btrfs_is_free_space_inode(BTRFS_I(inode)))
+       if (btrfs_is_free_space_inode(inode))
                wq = fs_info->endio_freespace_worker;
        else
                wq = fs_info->endio_write_workers;
 
        while (ordered_offset < offset + bytes) {
                last_offset = ordered_offset;
-               if (btrfs_dec_test_first_ordered_pending(BTRFS_I(inode), &ordered,
+               if (btrfs_dec_test_first_ordered_pending(inode, &ordered,
                                                         &ordered_offset,
                                                         ordered_bytes,
                                                         uptodate)) {
                         */
                        if (dio_data.unsubmitted_oe_range_start <
                            dio_data.unsubmitted_oe_range_end)
-                               __endio_write_update_ordered(inode,
+                               __endio_write_update_ordered(BTRFS_I(inode),
                                        dio_data.unsubmitted_oe_range_start,
                                        dio_data.unsubmitted_oe_range_end -
                                        dio_data.unsubmitted_oe_range_start,