Commit ec39a368 authored by Chandan Rajendra's avatar Chandan Rajendra Committed by Eric Biggers
Browse files

ext4: decrypt only the needed block in __ext4_block_zero_page_range()



In __ext4_block_zero_page_range(), only decrypt the block that actually
needs to be decrypted, rather than assuming blocksize == PAGE_SIZE and
decrypting the whole page.

This is in preparation for allowing encryption on ext4 filesystems with
blocksize != PAGE_SIZE.

Signed-off-by: default avatarChandan Rajendra <chandan@linux.ibm.com>
(EB: rebase onto previous changes, improve the commit message, and use
 bh_offset())
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
parent 0b578f35
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -4075,9 +4075,8 @@ static int __ext4_block_zero_page_range(handle_t *handle,
		if (S_ISREG(inode->i_mode) && IS_ENCRYPTED(inode)) {
			/* We expect the key to be set. */
			BUG_ON(!fscrypt_has_encryption_key(inode));
			BUG_ON(blocksize != PAGE_SIZE);
			WARN_ON_ONCE(fscrypt_decrypt_pagecache_blocks(
						page, PAGE_SIZE, 0));
					page, blocksize, bh_offset(bh)));
		}
	}
	if (ext4_should_journal_data(inode)) {