]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
logind: never select closing sessions for a VT
authorDavid Herrmann <dh.herrmann@gmail.com>
Thu, 16 Jul 2015 16:46:12 +0000 (18:46 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Thu, 16 Jul 2015 16:46:12 +0000 (18:46 +0200)
If a session is in closing state (and already got rid of its VT), then
never re-select it for that VT. There is no reason why we should grant
something to a session that is already going away *AND* already got rid
of exactly that.

src/login/logind-seat.c

index 1179ce937e7e2b18bc43aebdcaea62fa3f3e7d7e..495ec50be06d21e1da86505f5c394b01c78b53af 100644 (file)
@@ -486,7 +486,7 @@ void seat_evict_position(Seat *s, Session *session) {
                  * position (eg., during gdm->session transition), so let's look
                  * for it and set it on the free slot. */
                 LIST_FOREACH(sessions_by_seat, iter, s->sessions) {
-                        if (iter->position == pos) {
+                        if (iter->position == pos && session_get_state(iter) != SESSION_CLOSING) {
                                 s->positions[pos] = iter;
                                 break;
                         }