mbox series

[0/5] Add the test_dummy_encryption key on-demand

Message ID 20230208062107.199831-1-ebiggers@kernel.org (mailing list archive)
Headers show
Series Add the test_dummy_encryption key on-demand | expand

Message

Eric Biggers Feb. 8, 2023, 6:21 a.m. UTC
This series eliminates the call to fscrypt_destroy_keyring() from
__put_super(), which is causing confusion because it looks like (but
actually isn't) a sleep-in-atomic bug.  See the thread "block: sleeping
in atomic warnings", i.e.
https://lore.kernel.org/linux-fsdevel/CAHk-=wg6ohuyrmLJYTfEpDbp2Jwnef54gkcpZ3-BYgy4C6UxRQ@mail.gmail.com
and its responses.

To do this, this series makes it so that the key associated with the
"test_dummy_encryption" mount option is added on-demand when files are
accessed, instead of immediately when the filesystem is mounted.

I was going back and forth between this solution and instead having ext4
and f2fs call fscrypt_destroy_keyring() on ->fill_super failure.  (Or
using Linus's suggestion of adding the test dummy key as the very last
step of ->fill_super.)  It does seem ideal to add the key at mount time,
but I ended up going with this solution instead because it reduces the
number of things the individual filesystems have to handle.

Eric Biggers (5):
  fscrypt: add the test dummy encryption key on-demand
  ext4: stop calling fscrypt_add_test_dummy_key()
  f2fs: stop calling fscrypt_add_test_dummy_key()
  fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super()
  fscrypt: clean up fscrypt_add_test_dummy_key()

 fs/crypto/fscrypt_private.h |  4 ++++
 fs/crypto/keyring.c         | 26 +++++++-------------------
 fs/crypto/keysetup.c        | 23 +++++++++++++++++++++--
 fs/crypto/policy.c          |  3 +--
 fs/ext4/super.c             | 13 +------------
 fs/f2fs/super.c             |  6 ------
 fs/super.c                  |  1 -
 include/linux/fscrypt.h     |  9 ---------
 8 files changed, 34 insertions(+), 51 deletions(-)


base-commit: 6d796c50f84ca79f1722bb131799e5a5710c4700

Comments

Linus Torvalds Feb. 8, 2023, 3:38 p.m. UTC | #1
On Tue, Feb 7, 2023 at 10:21 PM Eric Biggers <ebiggers@kernel.org> wrote:
>
> I was going back and forth between this solution and instead having ext4
> and f2fs call fscrypt_destroy_keyring() on ->fill_super failure.  (Or
> using Linus's suggestion of adding the test dummy key as the very last
> step of ->fill_super.)  It does seem ideal to add the key at mount time,
> but I ended up going with this solution instead because it reduces the
> number of things the individual filesystems have to handle.

Well, the diffstat certainly looks nice:

>  8 files changed, 34 insertions(+), 51 deletions(-)

with that

>  fs/super.c                  |  1 -

removing the offending line that made Dan's static detection tool so
unhappy, so this all looks lovely to me.

Thanks,
             Linus
patchwork-bot+f2fs@kernel.org Feb. 28, 2023, 1:01 a.m. UTC | #2
Hello:

This series was applied to jaegeuk/f2fs.git (dev)
by Eric Biggers <ebiggers@google.com>:

On Tue,  7 Feb 2023 22:21:02 -0800 you wrote:
> This series eliminates the call to fscrypt_destroy_keyring() from
> __put_super(), which is causing confusion because it looks like (but
> actually isn't) a sleep-in-atomic bug.  See the thread "block: sleeping
> in atomic warnings", i.e.
> https://lore.kernel.org/linux-fsdevel/CAHk-=wg6ohuyrmLJYTfEpDbp2Jwnef54gkcpZ3-BYgy4C6UxRQ@mail.gmail.com
> and its responses.
> 
> [...]

Here is the summary with links:
  - [f2fs-dev,1/5] fscrypt: add the test dummy encryption key on-demand
    https://git.kernel.org/jaegeuk/f2fs/c/60e463f0be98
  - [f2fs-dev,2/5] ext4: stop calling fscrypt_add_test_dummy_key()
    https://git.kernel.org/jaegeuk/f2fs/c/7959eb19e4a3
  - [f2fs-dev,3/5] f2fs: stop calling fscrypt_add_test_dummy_key()
    https://git.kernel.org/jaegeuk/f2fs/c/1ad2a626762d
  - [f2fs-dev,4/5] fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super()
    https://git.kernel.org/jaegeuk/f2fs/c/ec64036e6863
  - [f2fs-dev,5/5] fscrypt: clean up fscrypt_add_test_dummy_key()
    https://git.kernel.org/jaegeuk/f2fs/c/097d7c1fcb8d

You are awesome, thank you!