int btrfs_drop_inode(struct inode *inode);
 int __init btrfs_init_cachep(void);
 void __cold btrfs_destroy_cachep(void);
-struct inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
-                             struct btrfs_path *path);
+struct btrfs_inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
+                                   struct btrfs_path *path);
 struct btrfs_inode *btrfs_iget(u64 ino, struct btrfs_root *root);
 struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
                                    struct folio *folio, u64 start, u64 len);
 
        struct btrfs_disk_key disk_key;
        struct btrfs_free_space_header *header;
        struct extent_buffer *leaf;
-       struct inode *inode = NULL;
+       struct btrfs_inode *inode;
        unsigned nofs_flag;
        int ret;
 
        btrfs_release_path(path);
        memalloc_nofs_restore(nofs_flag);
        if (IS_ERR(inode))
-               return inode;
+               return ERR_CAST(inode);
 
-       mapping_set_gfp_mask(inode->i_mapping,
-                       mapping_gfp_constraint(inode->i_mapping,
+       mapping_set_gfp_mask(inode->vfs_inode.i_mapping,
+                       mapping_gfp_constraint(inode->vfs_inode.i_mapping,
                        ~(__GFP_FS | __GFP_HIGHMEM)));
 
-       return inode;
+       return &inode->vfs_inode;
 }
 
 struct inode *lookup_free_space_inode(struct btrfs_block_group *block_group,
 
  * Get an inode object given its inode number and corresponding root.  Path is
  * preallocated to prevent recursing back to iget through allocator.
  */
-struct inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
-                             struct btrfs_path *path)
+struct btrfs_inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
+                                   struct btrfs_path *path)
 {
        struct btrfs_inode *inode;
        int ret;
                return ERR_PTR(-ENOMEM);
 
        if (!(inode->vfs_inode.i_state & I_NEW))
-               return &inode->vfs_inode;
+               return inode;
 
        ret = btrfs_read_locked_inode(inode, path);
        if (ret)
                return ERR_PTR(ret);
 
        unlock_new_inode(&inode->vfs_inode);
-       return &inode->vfs_inode;
+       return inode;
 }
 
 /*