@@ -79,10 +79,9 @@ void fscrypt_put_master_key(struct fscrypt_master_key *mk)
79
79
call_rcu (& mk -> mk_rcu_head , fscrypt_free_master_key );
80
80
}
81
81
82
- void fscrypt_put_master_key_activeref (struct fscrypt_master_key * mk )
82
+ void fscrypt_put_master_key_activeref (struct super_block * sb ,
83
+ struct fscrypt_master_key * mk )
83
84
{
84
- struct super_block * sb = mk -> mk_sb ;
85
- struct fscrypt_keyring * keyring = sb -> s_master_keys ;
86
85
size_t i ;
87
86
88
87
if (!refcount_dec_and_test (& mk -> mk_active_refs ))
@@ -93,9 +92,9 @@ void fscrypt_put_master_key_activeref(struct fscrypt_master_key *mk)
93
92
* destroying any subkeys embedded in it.
94
93
*/
95
94
96
- spin_lock (& keyring -> lock );
95
+ spin_lock (& sb -> s_master_keys -> lock );
97
96
hlist_del_rcu (& mk -> mk_node );
98
- spin_unlock (& keyring -> lock );
97
+ spin_unlock (& sb -> s_master_keys -> lock );
99
98
100
99
/*
101
100
* ->mk_active_refs == 0 implies that ->mk_secret is not present and
@@ -243,7 +242,7 @@ void fscrypt_destroy_keyring(struct super_block *sb)
243
242
WARN_ON (refcount_read (& mk -> mk_struct_refs ) != 1 );
244
243
WARN_ON (!is_master_key_secret_present (& mk -> mk_secret ));
245
244
wipe_master_key_secret (& mk -> mk_secret );
246
- fscrypt_put_master_key_activeref (mk );
245
+ fscrypt_put_master_key_activeref (sb , mk );
247
246
}
248
247
}
249
248
kfree_sensitive (keyring );
@@ -424,7 +423,6 @@ static int add_new_master_key(struct super_block *sb,
424
423
if (!mk )
425
424
return - ENOMEM ;
426
425
427
- mk -> mk_sb = sb ;
428
426
init_rwsem (& mk -> mk_sem );
429
427
refcount_set (& mk -> mk_struct_refs , 1 );
430
428
mk -> mk_spec = * mk_spec ;
@@ -1068,7 +1066,7 @@ static int do_remove_key(struct file *filp, void __user *_uarg, bool all_users)
1068
1066
err = - ENOKEY ;
1069
1067
if (is_master_key_secret_present (& mk -> mk_secret )) {
1070
1068
wipe_master_key_secret (& mk -> mk_secret );
1071
- fscrypt_put_master_key_activeref (mk );
1069
+ fscrypt_put_master_key_activeref (sb , mk );
1072
1070
err = 0 ;
1073
1071
}
1074
1072
inodes_remain = refcount_read (& mk -> mk_active_refs ) > 0 ;
0 commit comments