index and index_end are derived from the u64 start and end offsets, and
index is shifted back into a byte offset for offset_in_folio(), which
needs a cast to u64 to be safe on 32-bit. Make them u64 instead so the
cast goes away. They still fit pgoff_t where they are passed to
filemap_get_folio(), as they came from a valid file offset.
Signed-off-by: Tal Zussman <tz2294@columbia.edu>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
struct heuristic_ws *ws)
{
struct folio *folio;
- pgoff_t index, index_end;
+ u64 index, index_end;
u32 i, curr_sample_pos;
u8 *in_data;
folio = filemap_get_folio(inode->i_mapping, index);
ASSERT(!IS_ERR(folio));
in_data = kmap_local_folio(folio,
- offset_in_folio(folio, (u64)index << PAGE_SHIFT));
+ offset_in_folio(folio, index << PAGE_SHIFT));
/* Handle case where the start is not aligned to PAGE_SIZE */
i = start % PAGE_SIZE;
while (i < PAGE_SIZE - SAMPLING_READ_SIZE) {