From: Eric Biggers <ebiggers@kernel.org>
To: James Simmons <jsimmons@infradead.org>
Cc: Andreas Dilger <adilger@whamcloud.com>, NeilBrown <neilb@suse.de>,
linux-fscrypt@vger.kernel.org
Subject: Re: [PATCH] fscrypt: allow alternative bounce buffers
Date: Thu, 19 May 2022 09:52:14 -0700 [thread overview]
Message-ID: <YoZ1vlUWqX/ZF/iJ@sol.localdomain> (raw)
In-Reply-To: <1652966485-7418-1-git-send-email-jsimmons@infradead.org>
On Thu, May 19, 2022 at 09:21:25AM -0400, James Simmons wrote:
> Currently fscrypt offers two options. One option is to use the
> internal bounce buffer allocated or perform inline encrpytion.
> Add the option to use an external bounce buffer. This change can
> be used useful for example for a network file systems which can
> pass in a page from the page cache and place the encrypted data
> into a page for a network packet to be sent. Another potential
> use is the use of GPU pages with RDMA being the final destination
> for the encrypted data. Lastly in performance measurements the
> allocation of the bounce page incures a heavy cost. Using a page
> from a predefined memory pool can lower the case. We can replace
> the one off case of inplace encryption with the new general
> functions.
>
> Signed-Off-By: James Simmons <jsimmons@infradead.org>
> ---
> fs/crypto/crypto.c | 34 +++++++++++++++++++---------------
> fs/ubifs/crypto.c | 16 +++++++++-------
> include/linux/fscrypt.h | 31 ++++++++++++++++---------------
> 3 files changed, 44 insertions(+), 37 deletions(-)
Can you send a patch with the user of this at the same time? This patch isn't
useful on its own. UBIFS doesn't count, since it works fine without this.
> /**
> - * fscrypt_encrypt_block_inplace() - Encrypt a filesystem block in-place
> + * fscrypt_encrypt_page() - Cache an encrypt filesystem block in a page
fscrypt_encrypt_block() would be a better name, to avoid confusion between
blocks and pages.
Also, "Cache an encrypt filesystem block" => "Encrypt a filesystem block"
> /**
> - * fscrypt_decrypt_block_inplace() - Decrypt a filesystem block in-place
> + * fscrypt_decrypt_page() - Cache a decrypt a filesystem block in a page
Likewise, fscrypt_decrypt_block().
> * @inode: The inode to which this block belongs
> - * @page: The page containing the block to decrypt
> + * @src: The page containing the block to decrypt
> + * @dst: The page which will contain the plain data
> * @len: Size of block to decrypt. This must be a multiple of
> * FSCRYPT_CONTENTS_ALIGNMENT.
> * @offs: Byte offset within @page at which the block to decrypt begins
> @@ -292,17 +295,18 @@ EXPORT_SYMBOL(fscrypt_decrypt_pagecache_blocks);
> * Decrypt a possibly-compressed filesystem block that is located in an
> * arbitrary page, not necessarily in the original pagecache page. The @inode
> * and @lblk_num must be specified, as they can't be determined from @page.
> + * The encrypted data will be stored in @dst.
> *
> * Return: 0 on success; -errno on failure
> */
> -int fscrypt_decrypt_block_inplace(const struct inode *inode, struct page *page,
> - unsigned int len, unsigned int offs,
> - u64 lblk_num)
> +int fscrypt_decrypt_page(const struct inode *inode, struct page *src,
> + struct page *dst, unsigned int len, unsigned int offs,
> + u64 lblk_num, gfp_t gfp_flags)
The new gfp_flags parameter is not documented in the kerneldoc comment.
- Eric
prev parent reply other threads:[~2022-05-19 16:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-19 13:21 [PATCH] fscrypt: allow alternative bounce buffers James Simmons
2022-05-19 16:52 ` Eric Biggers [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YoZ1vlUWqX/ZF/iJ@sol.localdomain \
--to=ebiggers@kernel.org \
--cc=adilger@whamcloud.com \
--cc=jsimmons@infradead.org \
--cc=linux-fscrypt@vger.kernel.org \
--cc=neilb@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox