Thread (12 messages) 12 messages, 5 authors, 2023-02-08

Re: block: sleeping in atomic warnings

From: Eric Biggers <ebiggers@kernel.org>
Date: 2023-02-07 19:36:00
Also in: linux-fsdevel, lkml

On Tue, Feb 07, 2023 at 10:57:08AM -0800, Linus Torvalds wrote:
On Tue, Feb 7, 2023 at 10:36 AM Eric Biggers [off-list ref] wrote:
quoted
Also note that keys are normally added using an ioctl, which can only be
executed after the filesystem was mounted.  The only exception is the key
associated with the "test_dummy_encryption" mount option.
Could we perhaps then replace the

                fscrypt_destroy_keyring(s);

with a more specific

                fscrypt_destroy_dummy_keyring(s);

thing, that would only handle the dummy encryption case?

Sure, they would still need to do most of the same things though.
Or could we just *fix* the dummy encryption test to actually work like
real encryption cases, so that it doesn't have this bogus case?
We've wanted to do that for a very long time, but there never has been a way to
actually do it.  Especially with the filesystem-level keyring now, if the kernel
doesn't automatically add the key for test_dummy_encryption, then userspace
would have to do it *every time it mounts the filesystem*.

The point of the "test_dummy_encryption" mount option is that you can just add
it to the mount options and run existing tests, such as a full run of xfstests,
and test all the encrypted I/O paths that way.  Which is extremely useful; it
wouldn't really be possible to properly test the encryption feature without it.

So that's why we've gone through some pain to keep "test_dummy_encryption"
working over time.

Now, it's possible that "the kernel automatically adds the key for
test_dummy_encryption" could be implemented a bit differently.  It maybe could
be done at the last minute, when the key is being looked for due to a user
filesystem operation, instead of during the mount itself.  That would eliminate
the need to call fscrypt_destroy_keyring() from __put_super(), which would avoid
the issue being discussed here.  I'll see if there's a good way to do that.

- Eric
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help