Commit 640778fb authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs crypto: get rid of ci_mode from struct f2fs_crypt_info



This patch integrates the below patch into f2fs.

"ext4 crypto: get rid of ci_mode from struct ext4_crypt_info

The ci_mode field was superfluous, and getting rid of it gets rid of
an unused hole in the structure."

Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 8bacf6de
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -151,14 +151,13 @@ struct f2fs_crypto_ctx *f2fs_get_crypto_ctx(struct inode *inode)
	 * Allocate a new Crypto API context if we don't already have
	 * one or if it isn't the right mode.
	 */
	BUG_ON(ci->ci_mode == F2FS_ENCRYPTION_MODE_INVALID);
	if (ctx->tfm && (ctx->mode != ci->ci_mode)) {
	if (ctx->tfm && (ctx->mode != ci->ci_data_mode)) {
		crypto_free_tfm(ctx->tfm);
		ctx->tfm = NULL;
		ctx->mode = F2FS_ENCRYPTION_MODE_INVALID;
	}
	if (!ctx->tfm) {
		switch (ci->ci_mode) {
		switch (ci->ci_data_mode) {
		case F2FS_ENCRYPTION_MODE_AES_256_XTS:
			ctx->tfm = crypto_ablkcipher_tfm(
				crypto_alloc_ablkcipher("xts(aes)", 0, 0));
@@ -178,9 +177,9 @@ struct f2fs_crypto_ctx *f2fs_get_crypto_ctx(struct inode *inode)
			ctx->tfm = NULL;
			goto out;
		}
		ctx->mode = ci->ci_mode;
		ctx->mode = ci->ci_data_mode;
	}
	BUG_ON(ci->ci_size != f2fs_encryption_key_size(ci->ci_mode));
	BUG_ON(ci->ci_size != f2fs_encryption_key_size(ci->ci_data_mode));

	/*
	 * There shouldn't be a bounce page attached to the crypto
@@ -388,7 +387,7 @@ static int f2fs_page_crypto(struct f2fs_crypto_ctx *ctx,
	int res = 0;

	BUG_ON(!ctx->tfm);
	BUG_ON(ctx->mode != fi->i_crypt_info->ci_mode);
	BUG_ON(ctx->mode != fi->i_crypt_info->ci_data_mode);

	if (ctx->mode != F2FS_ENCRYPTION_MODE_AES_256_XTS) {
		printk_ratelimited(KERN_ERR
+2 −2
Original line number Diff line number Diff line
@@ -269,9 +269,9 @@ int f2fs_setup_fname_crypto(struct inode *inode)
	if (!ci || ci->ci_ctfm)
		return 0;

	if (ci->ci_mode != F2FS_ENCRYPTION_MODE_AES_256_CTS) {
	if (ci->ci_filename_mode != F2FS_ENCRYPTION_MODE_AES_256_CTS) {
		printk_once(KERN_WARNING "f2fs: unsupported key mode %d\n",
				ci->ci_mode);
				ci->ci_filename_mode);
		return -ENOKEY;
	}

+6 −6
Original line number Diff line number Diff line
@@ -148,14 +148,14 @@ int _f2fs_get_encryption_info(struct inode *inode)
	memcpy(crypt_info->ci_master_key, ctx.master_key_descriptor,
				sizeof(crypt_info->ci_master_key));
	if (S_ISREG(inode->i_mode))
		crypt_info->ci_mode = ctx.contents_encryption_mode;
		crypt_info->ci_size =
			f2fs_encryption_key_size(crypt_info->ci_data_mode);
	else if (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))
		crypt_info->ci_mode = ctx.filenames_encryption_mode;
	else {
		printk(KERN_ERR "f2fs crypto: Unsupported inode type.\n");
		crypt_info->ci_size =
			f2fs_encryption_key_size(crypt_info->ci_filename_mode);
	else
		BUG();
	}
	crypt_info->ci_size = f2fs_encryption_key_size(crypt_info->ci_mode);

	BUG_ON(!crypt_info->ci_size);

	memcpy(full_key_descriptor, F2FS_KEY_DESC_PREFIX,
+0 −1
Original line number Diff line number Diff line
@@ -75,7 +75,6 @@ struct f2fs_encryption_key {
} __attribute__((__packed__));

struct f2fs_crypt_info {
	unsigned char	ci_mode;
	unsigned char	ci_size;
	char		ci_data_mode;
	char		ci_filename_mode;