From: Eric Biggers Date: Wed, 8 Feb 2023 06:21:06 +0000 (-0800) Subject: fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=ec64036e68634231f5891faa2b7a81cdc5dcd001;p=linux.git fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super() 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 Link: https://lore.kernel.org/r/20230208062107.199831-5-ebiggers@kernel.org --- diff --git a/fs/super.c b/fs/super.c index 12c08cb20405d..ce45b7fd27f90 100644 --- a/fs/super.c +++ b/fs/super.c @@ -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);