]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fscrypt: pass a byte offset to fscrypt_zeroout_range_inline_crypt
authorChristoph Hellwig <hch@lst.de>
Mon, 2 Mar 2026 14:18:14 +0000 (06:18 -0800)
committerEric Biggers <ebiggers@kernel.org>
Mon, 9 Mar 2026 20:31:51 +0000 (13:31 -0700)
Logical offsets into an inode are usually expressed as bytes in the VFS.
Switch fscrypt_zeroout_range_inline_crypt to that convention.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20260302141922.370070-10-hch@lst.de
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
fs/crypto/bio.c

index e7fb2fdd972855c818e82b78414585ea374cb4be..7558b3e697015b5a26627bc17a816288fa4a8272 100644 (file)
@@ -70,12 +70,11 @@ static void fscrypt_zeroout_range_end_io(struct bio *bio)
 }
 
 static int fscrypt_zeroout_range_inline_crypt(const struct inode *inode,
-                                             pgoff_t lblk, sector_t sector,
+                                             loff_t pos, sector_t sector,
                                              unsigned int len)
 {
        const unsigned int blockbits = inode->i_blkbits;
        const unsigned int blocks_per_page = 1 << (PAGE_SHIFT - blockbits);
-       loff_t pos = (loff_t)lblk << blockbits;
        struct fscrypt_zero_done done = {
                .pending        = ATOMIC_INIT(1),
                .done           = COMPLETION_INITIALIZER_ONSTACK(done.done),
@@ -142,6 +141,7 @@ int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
        const unsigned int du_per_page = 1U << du_per_page_bits;
        u64 du_index = (u64)lblk << (inode->i_blkbits - du_bits);
        u64 du_remaining = (u64)len << (inode->i_blkbits - du_bits);
+       loff_t pos = (loff_t)lblk << inode->i_blkbits;
        sector_t sector = pblk << (inode->i_blkbits - SECTOR_SHIFT);
        struct page *pages[16]; /* write up to 16 pages at a time */
        unsigned int nr_pages;
@@ -154,7 +154,7 @@ int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
                return 0;
 
        if (fscrypt_inode_uses_inline_crypto(inode))
-               return fscrypt_zeroout_range_inline_crypt(inode, lblk, sector,
+               return fscrypt_zeroout_range_inline_crypt(inode, pos, sector,
                                                          len);
 
        BUILD_BUG_ON(ARRAY_SIZE(pages) > BIO_MAX_VECS);