* 0 if all went well (page still locked)
  * < 0 if there were errors (page still locked)
  */
-static noinline_for_stack int __extent_writepage_io(struct inode *inode,
+static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
                                 struct page *page,
                                 struct writeback_control *wbc,
                                 struct extent_page_data *epd,
                                 unsigned long nr_written,
                                 int *nr_ret)
 {
-       struct extent_io_tree *tree = &BTRFS_I(inode)->io_tree;
+       struct extent_io_tree *tree = &inode->io_tree;
        u64 start = page_offset(page);
        u64 page_end = start + PAGE_SIZE - 1;
        u64 end;
        update_nr_written(wbc, nr_written + 1);
 
        end = page_end;
-       blocksize = inode->i_sb->s_blocksize;
+       blocksize = inode->vfs_inode.i_sb->s_blocksize;
 
        while (cur <= end) {
                u64 em_end;
                                                             page_end, 1);
                        break;
                }
-               em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur,
-                                     end - cur + 1);
+               em = btrfs_get_extent(inode, NULL, 0, cur, end - cur + 1);
                if (IS_ERR_OR_NULL(em)) {
                        SetPageError(page);
                        ret = PTR_ERR_OR_ZERO(em);
 
                btrfs_set_range_writeback(tree, cur, cur + iosize - 1);
                if (!PageWriteback(page)) {
-                       btrfs_err(BTRFS_I(inode)->root->fs_info,
+                       btrfs_err(inode->root->fs_info,
                                   "page %lu not writeback, cur %llu end %llu",
                               page->index, cur, end);
                }
                        goto done;
        }
 
-       ret = __extent_writepage_io(inode, page, wbc, epd,
-                                   i_size, nr_written, &nr);
+       ret = __extent_writepage_io(BTRFS_I(inode), page, wbc, epd, i_size,
+                                   nr_written, &nr);
        if (ret == 1)
                return 0;