On Wed, Nov 13, 2024 at 01:47:21AM -0800, Luis Chamberlain wrote: > +++ b/fs/mpage.c > @@ -181,7 +181,7 @@ static struct bio *do_mpage_readpage(struct mpage_readpage_args *args) > if (folio_buffers(folio)) > goto confused; > > - block_in_file = (sector_t)folio->index << (PAGE_SHIFT - blkbits); > + block_in_file = (sector_t)(((loff_t)folio->index << PAGE_SHIFT) >> blkbits); block_in_file = folio_pos(folio) >> blkbits; ? > @@ -527,7 +527,7 @@ static int __mpage_writepage(struct folio *folio, struct writeback_control *wbc, > * The page has no buffers: map it to disk > */ > BUG_ON(!folio_test_uptodate(folio)); > - block_in_file = (sector_t)folio->index << (PAGE_SHIFT - blkbits); > + block_in_file = (sector_t)(((loff_t)folio->index << PAGE_SHIFT) >> blkbits); Likewise.