Commit d199798b authored by David Howells's avatar David Howells Committed by James Morris
Browse files

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: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent b072e9bc
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ void key_schedule_gc(time_t gc_at)
	kenter("%ld", gc_at - now);

	if (gc_at <= now) {
		schedule_work(&key_gc_work);
		queue_work(system_nrt_wq, &key_gc_work);
	} else if (gc_at < key_gc_next_run) {
		expires = jiffies + (gc_at - now) * HZ;
		mod_timer(&key_gc_timer, expires);
@@ -65,7 +65,7 @@ static void key_gc_timer_func(unsigned long data)
{
	kenter("");
	key_gc_next_run = LONG_MAX;
	schedule_work(&key_gc_work);
	queue_work(system_nrt_wq, &key_gc_work);
}

/*
@@ -206,7 +206,7 @@ gc_released_our_lock:
	key_gc_new_timer = new_timer;
	key_gc_again = true;
	clear_bit(0, &key_gc_executing);
	schedule_work(&key_gc_work);
	queue_work(system_nrt_wq, &key_gc_work);
	kleave(" [continue]");
	return;