mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
fscrypt: pass a byte length to fscrypt_zeroout_range_inline_crypt
Range lengths are usually expressed as bytes in the VFS, switch fscrypt_zeroout_range_inline_crypt to this convention. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20260302141922.370070-11-hch@lst.de Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
committed by
Eric Biggers
parent
090c5c1597
commit
90950ee563
+4
-8
@@ -71,10 +71,8 @@ static void fscrypt_zeroout_range_end_io(struct bio *bio)
|
||||
|
||||
static int fscrypt_zeroout_range_inline_crypt(const struct inode *inode,
|
||||
loff_t pos, sector_t sector,
|
||||
unsigned int len)
|
||||
u64 len)
|
||||
{
|
||||
const unsigned int blockbits = inode->i_blkbits;
|
||||
const unsigned int blocks_per_page = 1 << (PAGE_SHIFT - blockbits);
|
||||
struct fscrypt_zero_done done = {
|
||||
.pending = ATOMIC_INIT(1),
|
||||
.done = COMPLETION_INITIALIZER_ONSTACK(done.done),
|
||||
@@ -92,12 +90,10 @@ static int fscrypt_zeroout_range_inline_crypt(const struct inode *inode,
|
||||
fscrypt_set_bio_crypt_ctx(bio, inode, pos, GFP_NOFS);
|
||||
|
||||
for (n = 0; n < BIO_MAX_VECS; n++) {
|
||||
unsigned int blocks_this_page =
|
||||
min(len, blocks_per_page);
|
||||
unsigned int bytes_this_page = blocks_this_page << blockbits;
|
||||
unsigned int bytes_this_page = min(len, PAGE_SIZE);
|
||||
|
||||
__bio_add_page(bio, ZERO_PAGE(0), bytes_this_page, 0);
|
||||
len -= blocks_this_page;
|
||||
len -= bytes_this_page;
|
||||
pos += bytes_this_page;
|
||||
sector += (bytes_this_page >> SECTOR_SHIFT);
|
||||
if (!len || !fscrypt_mergeable_bio(bio, inode, pos))
|
||||
@@ -155,7 +151,7 @@ int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
|
||||
|
||||
if (fscrypt_inode_uses_inline_crypto(inode))
|
||||
return fscrypt_zeroout_range_inline_crypt(inode, pos, sector,
|
||||
len);
|
||||
(u64)len << inode->i_blkbits);
|
||||
|
||||
BUILD_BUG_ON(ARRAY_SIZE(pages) > BIO_MAX_VECS);
|
||||
nr_pages = min_t(u64, ARRAY_SIZE(pages),
|
||||
|
||||
Reference in New Issue
Block a user