|
|
275528d |
From 10189fd6be0f547d75bc857860f3ecbbdbc447a6 Mon Sep 17 00:00:00 2001
|
|
|
275528d |
From: David Herrmann <dh.herrmann@gmail.com>
|
|
|
275528d |
Date: Fri, 31 Jul 2015 16:52:29 +0200
|
|
|
275528d |
Subject: [PATCH 261/261] logind: release VT-positions when closing sessions
|
|
|
275528d |
|
|
|
275528d |
Make sure we release VT-positions when a session is closed. Otherwise,
|
|
|
275528d |
lingering sessions will occupy VTs and prevent next logins from
|
|
|
275528d |
succeeding.
|
|
|
275528d |
|
|
|
275528d |
Note that we already release session-devices when closing a session, so
|
|
|
275528d |
there cannot be anyone using the VT anymore.
|
|
|
275528d |
---
|
|
|
275528d |
src/login/logind-session.c | 6 ++++++
|
|
|
275528d |
1 file changed, 6 insertions(+)
|
|
|
275528d |
|
|
|
275528d |
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
|
|
|
275528d |
index 2537d02..9a2da79 100644
|
|
|
275528d |
--- a/src/login/logind-session.c
|
|
|
275528d |
+++ b/src/login/logind-session.c
|
|
|
275528d |
@@ -636,6 +636,9 @@ int session_stop(Session *s, bool force) {
|
|
|
275528d |
|
|
|
275528d |
s->timer_event_source = sd_event_source_unref(s->timer_event_source);
|
|
|
275528d |
|
|
|
275528d |
+ if (s->seat)
|
|
|
275528d |
+ seat_evict_position(s->seat, s);
|
|
|
275528d |
+
|
|
|
275528d |
/* We are going down, don't care about FIFOs anymore */
|
|
|
275528d |
session_remove_fifo(s);
|
|
|
275528d |
|
|
|
275528d |
@@ -672,6 +675,9 @@ int session_finalize(Session *s) {
|
|
|
275528d |
|
|
|
275528d |
s->timer_event_source = sd_event_source_unref(s->timer_event_source);
|
|
|
275528d |
|
|
|
275528d |
+ if (s->seat)
|
|
|
275528d |
+ seat_evict_position(s->seat, s);
|
|
|
275528d |
+
|
|
|
275528d |
/* Kill session devices */
|
|
|
275528d |
while ((sd = hashmap_first(s->devices)))
|
|
|
275528d |
session_device_free(sd);
|
|
|
275528d |
--
|
|
|
275528d |
2.4.3
|
|
|
275528d |
|