Commit d199798bdf969873f78d48140600ff0a98a87e69
Committed by
James Morris
1 parent
b072e9bc2f
Exists in
master
and in
6 other branches
KEYS: The dead key link reaper should be non-reentrant
The dead key link reaper should be non-reentrant as it relies on global state to keep track of where it's got to when it returns to the work queue manager to give it some air. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: James Morris <jmorris@namei.org>
Showing 1 changed file with 3 additions and 3 deletions Side-by-side Diff
security/keys/gc.c
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | kenter("%ld", gc_at - now); |
52 | 52 | |
53 | 53 | if (gc_at <= now) { |
54 | - schedule_work(&key_gc_work); | |
54 | + queue_work(system_nrt_wq, &key_gc_work); | |
55 | 55 | } else if (gc_at < key_gc_next_run) { |
56 | 56 | expires = jiffies + (gc_at - now) * HZ; |
57 | 57 | mod_timer(&key_gc_timer, expires); |
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 | { |
66 | 66 | kenter(""); |
67 | 67 | key_gc_next_run = LONG_MAX; |
68 | - schedule_work(&key_gc_work); | |
68 | + queue_work(system_nrt_wq, &key_gc_work); | |
69 | 69 | } |
70 | 70 | |
71 | 71 | /* |
... | ... | @@ -206,7 +206,7 @@ |
206 | 206 | key_gc_new_timer = new_timer; |
207 | 207 | key_gc_again = true; |
208 | 208 | clear_bit(0, &key_gc_executing); |
209 | - schedule_work(&key_gc_work); | |
209 | + queue_work(system_nrt_wq, &key_gc_work); | |
210 | 210 | kleave(" [continue]"); |
211 | 211 | return; |
212 | 212 |