提交 b072e9bc 编写于 作者: D David Howells 提交者: James Morris

KEYS: Make the key reaper non-reentrant

Make the key reaper non-reentrant by sticking it on the appropriate system work
queue when we queue it.  This will allow it to have global state and drop
locks.  It should probably be non-reentrant already as it may spend a long time
holding the key serial spinlock, and so multiple entrants can spend long
periods of time just sitting there spinning, waiting to get the lock.
Signed-off-by: NDavid Howells <dhowells@redhat.com>
Signed-off-by: NJames Morris <jmorris@namei.org>
上级 8bc16dea
...@@ -602,7 +602,7 @@ void key_put(struct key *key) ...@@ -602,7 +602,7 @@ void key_put(struct key *key)
key_check(key); key_check(key);
if (atomic_dec_and_test(&key->usage)) if (atomic_dec_and_test(&key->usage))
schedule_work(&key_gc_unused_work); queue_work(system_nrt_wq, &key_gc_unused_work);
} }
} }
EXPORT_SYMBOL(key_put); EXPORT_SYMBOL(key_put);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册