Commit 90950ee5 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Eric Biggers
Browse files

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: default avatarChristoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20260302141922.370070-11-hch@lst.de


Signed-off-by: default avatarEric Biggers <ebiggers@kernel.org>
parent 090c5c15
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -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),