]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
logind: release VT-positions when closing sessions
authorDavid Herrmann <dh.herrmann@gmail.com>
Fri, 31 Jul 2015 14:52:29 +0000 (16:52 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Fri, 31 Jul 2015 14:52:29 +0000 (16:52 +0200)
Make sure we release VT-positions when a session is closed. Otherwise,
lingering sessions will occupy VTs and prevent next logins from
succeeding.

Note that we already release session-devices when closing a session, so
there cannot be anyone using the VT anymore.

src/login/logind-session.c

index 2537d0284577383b157ebdbe51b3642457414941..9a2da7906e314a27974e84d70be2aeaf9399b024 100644 (file)
@@ -636,6 +636,9 @@ int session_stop(Session *s, bool force) {
 
         s->timer_event_source = sd_event_source_unref(s->timer_event_source);
 
+        if (s->seat)
+                seat_evict_position(s->seat, s);
+
         /* We are going down, don't care about FIFOs anymore */
         session_remove_fifo(s);
 
@@ -672,6 +675,9 @@ int session_finalize(Session *s) {
 
         s->timer_event_source = sd_event_source_unref(s->timer_event_source);
 
+        if (s->seat)
+                seat_evict_position(s->seat, s);
+
         /* Kill session devices */
         while ((sd = hashmap_first(s->devices)))
                 session_device_free(sd);