Replace the next_block variable that is in units of file system blocks
and incorretly uses the sector_t type with a byte offset, as that is
what both users want.

Signed-off-by: Christoph Hellwig <[email protected]>
---
 fs/ext4/readpage.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c
index fbfa4d830d9a..c94240c91282 100644
--- a/fs/ext4/readpage.c
+++ b/fs/ext4/readpage.c
@@ -215,11 +215,11 @@ static int ext4_mpage_readpages(struct inode *inode, 
struct fsverity_info *vi,
        sector_t last_block_in_bio = 0;
        const unsigned blkbits = inode->i_blkbits;
        const unsigned blocksize = 1 << blkbits;
-       sector_t next_block;
        sector_t block_in_file;
        sector_t last_block;
        sector_t last_block_in_file;
        sector_t first_block;
+       loff_t pos;
        unsigned page_block;
        struct block_device *bdev = inode->i_sb->s_bdev;
        int length;
@@ -249,7 +249,8 @@ static int ext4_mpage_readpages(struct inode *inode, struct 
fsverity_info *vi,
 
                blocks_per_folio = folio_size(folio) >> blkbits;
                first_hole = blocks_per_folio;
-               block_in_file = next_block = EXT4_PG_TO_LBLK(inode, 
folio->index);
+               block_in_file = EXT4_PG_TO_LBLK(inode, folio->index);
+               pos = (loff_t)block_in_file << blkbits;
                last_block = EXT4_PG_TO_LBLK(inode, folio->index + nr_pages);
                last_block_in_file = (ext4_readpage_limit(inode) +
                                      blocksize - 1) >> blkbits;
@@ -342,8 +343,7 @@ static int ext4_mpage_readpages(struct inode *inode, struct 
fsverity_info *vi,
                 * BIO off first?
                 */
                if (bio && (last_block_in_bio != first_block - 1 ||
-                           !fscrypt_mergeable_bio(bio, inode,
-                               (loff_t)next_block << blkbits))) {
+                           !fscrypt_mergeable_bio(bio, inode, pos))) {
                submit_and_realloc:
                        blk_crypto_submit_bio(bio);
                        bio = NULL;
@@ -355,8 +355,7 @@ static int ext4_mpage_readpages(struct inode *inode, struct 
fsverity_info *vi,
                         */
                        bio = bio_alloc(bdev, bio_max_segs(nr_pages),
                                        REQ_OP_READ, GFP_KERNEL);
-                       fscrypt_set_bio_crypt_ctx(bio, inode,
-                                       (loff_t)next_block << blkbits, 
GFP_KERNEL);
+                       fscrypt_set_bio_crypt_ctx(bio, inode, pos, GFP_KERNEL);
                        ext4_set_bio_post_read_ctx(bio, inode, vi);
                        bio->bi_iter.bi_sector = first_block << (blkbits - 9);
                        bio->bi_end_io = mpage_end_io;
-- 
2.47.3



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to