diff --git a/security/keys/keyring.c b/security/keys/keyring.c index 5a9887d6b7be..21bb2e7e7cca 100644 --- a/security/keys/keyring.c +++ b/security/keys/keyring.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -1298,6 +1299,7 @@ int __key_link_begin(struct key *keyring, struct assoc_array_edit **_edit) { struct assoc_array_edit *edit; + unsigned int nofs_flags; int ret; kenter("%d,%s,%s,", @@ -1315,10 +1317,12 @@ int __key_link_begin(struct key *keyring, /* Create an edit script that will insert/replace the key in the * keyring tree. */ + nofs_flags = memalloc_nofs_save(); edit = assoc_array_insert(&keyring->keys, &keyring_assoc_array_ops, index_key, NULL); + memalloc_nofs_restore(nofs_flags); if (IS_ERR(edit)) { ret = PTR_ERR(edit); goto error;