mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
fscrypt: pass a byte offset to fscrypt_mergeable_bio
Logical offsets into an inode are usually expressed as bytes in the VFS. Switch fscrypt_mergeable_bio to that convention. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20260302141922.370070-8-hch@lst.de Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
committed by
Eric Biggers
parent
60b4fcb49e
commit
22be86a23c
@@ -100,7 +100,8 @@ static int fscrypt_zeroout_range_inline_crypt(const struct inode *inode,
|
||||
len -= blocks_this_page;
|
||||
lblk += blocks_this_page;
|
||||
sector += (bytes_this_page >> SECTOR_SHIFT);
|
||||
if (!len || !fscrypt_mergeable_bio(bio, inode, lblk))
|
||||
if (!len || !fscrypt_mergeable_bio(bio, inode,
|
||||
(loff_t)lblk << blockbits))
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -316,7 +316,7 @@ EXPORT_SYMBOL_GPL(fscrypt_set_bio_crypt_ctx);
|
||||
* fscrypt_mergeable_bio() - test whether data can be added to a bio
|
||||
* @bio: the bio being built up
|
||||
* @inode: the inode for the next part of the I/O
|
||||
* @next_lblk: the next file logical block number in the I/O
|
||||
* @pos: the next file position (in bytes) in the I/O
|
||||
*
|
||||
* When building a bio which may contain data which should undergo inline
|
||||
* encryption (or decryption) via fscrypt, filesystems should call this function
|
||||
@@ -334,7 +334,7 @@ EXPORT_SYMBOL_GPL(fscrypt_set_bio_crypt_ctx);
|
||||
* Return: true iff the I/O is mergeable
|
||||
*/
|
||||
bool fscrypt_mergeable_bio(struct bio *bio, const struct inode *inode,
|
||||
u64 next_lblk)
|
||||
loff_t pos)
|
||||
{
|
||||
const struct bio_crypt_ctx *bc = bio->bi_crypt_context;
|
||||
const struct fscrypt_inode_info *ci;
|
||||
@@ -354,7 +354,7 @@ bool fscrypt_mergeable_bio(struct bio *bio, const struct inode *inode,
|
||||
if (bc->bc_key != ci->ci_enc_key.blk_key)
|
||||
return false;
|
||||
|
||||
fscrypt_generate_dun(ci, next_lblk << inode->i_blkbits, next_dun);
|
||||
fscrypt_generate_dun(ci, pos, next_dun);
|
||||
return bio_crypt_dun_is_contiguous(bc, bio->bi_iter.bi_size, next_dun);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fscrypt_mergeable_bio);
|
||||
|
||||
Reference in New Issue
Block a user