fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super()
authorEric Biggers <ebiggers@google.com>
Wed, 8 Feb 2023 06:21:06 +0000 (22:21 -0800)
committerEric Biggers <ebiggers@google.com>
Wed, 8 Feb 2023 06:30:30 +0000 (22:30 -0800)
Now that the key associated with the "test_dummy_operation" mount option
is added on-demand when it's needed, rather than immediately when the
filesystem is mounted, fscrypt_destroy_keyring() no longer needs to be
called from __put_super() to avoid a memory leak on mount failure.

Remove this call, which was causing confusion because it appeared to be
a sleep-in-atomic bug (though it wasn't, for a somewhat-subtle reason).

Signed-off-by: Eric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20230208062107.199831-5-ebiggers@kernel.org
fs/super.c

index 12c08cb..ce45b7f 100644 (file)
@@ -291,7 +291,6 @@ static void __put_super(struct super_block *s)
                WARN_ON(s->s_inode_lru.node);
                WARN_ON(!list_empty(&s->s_mounts));
                security_sb_free(s);
-               fscrypt_destroy_keyring(s);
                put_user_ns(s->s_user_ns);
                kfree(s->s_subtype);
                call_rcu(&s->rcu, destroy_super_rcu);