diff options
Diffstat (limited to 'fs/erofs/fileio.c')
-rw-r--r-- | fs/erofs/fileio.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/erofs/fileio.c b/fs/erofs/fileio.c index 4fa0a0121288..7d81f504bff0 100644 --- a/fs/erofs/fileio.c +++ b/fs/erofs/fileio.c @@ -147,13 +147,14 @@ io_retry: if (err) break; io->rq = erofs_fileio_rq_alloc(&io->dev); - io->rq->bio.bi_iter.bi_sector = io->dev.m_pa >> 9; + io->rq->bio.bi_iter.bi_sector = + (io->dev.m_dif->fsoff + io->dev.m_pa) >> 9; attached = 0; } - if (!attached++) - erofs_onlinefolio_split(folio); if (!bio_add_folio(&io->rq->bio, folio, len, cur)) goto io_retry; + if (!attached++) + erofs_onlinefolio_split(folio); io->dev.m_pa += len; } cur += len; @@ -180,7 +181,7 @@ static void erofs_fileio_readahead(struct readahead_control *rac) struct folio *folio; int err; - trace_erofs_readpages(inode, readahead_index(rac), + trace_erofs_readahead(inode, readahead_index(rac), readahead_count(rac), true); while ((folio = readahead_folio(rac))) { err = erofs_fileio_scan_folio(&io, folio); |