*
  * Return non-zero if the compression should be done, 0 otherwise.
  */
-int btrfs_compress_heuristic(struct inode *inode, u64 start, u64 end)
+int btrfs_compress_heuristic(struct btrfs_inode *inode, u64 start, u64 end)
 {
        struct list_head *ws_list = get_workspace(0, 0);
        struct heuristic_ws *ws;
 
        ws = list_entry(ws_list, struct heuristic_ws, list);
 
-       heuristic_collect_sample(inode, start, end, ws);
+       heuristic_collect_sample(&inode->vfs_inode, start, end, ws);
 
        if (sample_repeated_patterns(ws)) {
                ret = 1;
 
 const char* btrfs_compress_type2str(enum btrfs_compression_type type);
 bool btrfs_compress_is_valid_type(const char *str, size_t len);
 
-int btrfs_compress_heuristic(struct inode *inode, u64 start, u64 end);
+int btrfs_compress_heuristic(struct btrfs_inode *inode, u64 start, u64 end);
 
 int btrfs_compress_filemap_get_folio(struct address_space *mapping, u64 start,
                                     struct folio **in_folio_ret);
 
        if (btrfs_test_opt(fs_info, COMPRESS) ||
            inode->flags & BTRFS_INODE_COMPRESS ||
            inode->prop_compress)
-               return btrfs_compress_heuristic(&inode->vfs_inode, start, end);
+               return btrfs_compress_heuristic(inode, start, end);
        return 0;
 }