mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
ext4: support large block size in mpage_map_and_submit_buffers()
Use the EXT4_PG_TO_LBLK/EXT4_LBLK_TO_PG macros to complete the conversion between folio indexes and blocks to avoid negative left/right shifts after supporting blocksize greater than PAGE_SIZE. Signed-off-by: Baokun Li <libaokun1@huawei.com> Reviewed-by: Zhang Yi <yi.zhang@huawei.com> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Ojaswin Mujoo <ojaswin@linux.ibm.com> Message-ID: <20251121090654.631996-19-libaokun@huaweicloud.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
bff6235d62
commit
b967ab7487
|
|
@ -2299,15 +2299,14 @@ static int mpage_map_and_submit_buffers(struct mpage_da_data *mpd)
|
|||
struct folio_batch fbatch;
|
||||
unsigned nr, i;
|
||||
struct inode *inode = mpd->inode;
|
||||
int bpp_bits = PAGE_SHIFT - inode->i_blkbits;
|
||||
pgoff_t start, end;
|
||||
ext4_lblk_t lblk;
|
||||
ext4_fsblk_t pblock;
|
||||
int err;
|
||||
bool map_bh = false;
|
||||
|
||||
start = mpd->map.m_lblk >> bpp_bits;
|
||||
end = (mpd->map.m_lblk + mpd->map.m_len - 1) >> bpp_bits;
|
||||
start = EXT4_LBLK_TO_PG(inode, mpd->map.m_lblk);
|
||||
end = EXT4_LBLK_TO_PG(inode, mpd->map.m_lblk + mpd->map.m_len - 1);
|
||||
pblock = mpd->map.m_pblk;
|
||||
|
||||
folio_batch_init(&fbatch);
|
||||
|
|
@ -2318,7 +2317,7 @@ static int mpage_map_and_submit_buffers(struct mpage_da_data *mpd)
|
|||
for (i = 0; i < nr; i++) {
|
||||
struct folio *folio = fbatch.folios[i];
|
||||
|
||||
lblk = folio->index << bpp_bits;
|
||||
lblk = EXT4_PG_TO_LBLK(inode, folio->index);
|
||||
err = mpage_process_folio(mpd, folio, &lblk, &pblock,
|
||||
&map_bh);
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user