[systemd-devel] [PATCH 2/3] logind: session: set_controller should fail if prepare_vt fails

David Herrmann dh.herrmann at gmail.com
Mon Aug 11 09:40:25 PDT 2014


Hi

On Mon, Aug 11, 2014 at 6:13 PM, Lennart Poettering
<lennart at poettering.net> wrote:
> On Mon, 11.08.14 17:17, David Herrmann (dh.herrmann at gmail.com) wrote:
>
>>
>> Hi
>>
>> On Fri, Aug 8, 2014 at 8:45 PM, Olivier Brunel <jjk at jjacky.com> wrote:
>> > If controllers can expect logind to have "prepared" the VT (e.g. set it to
>> > graphics mode, etc) then TakeControl() should fail if said preparation
>> > failed (and session_restore_vt() was called).
>> > ---
>> >  src/login/logind-session.c | 15 +++++++++------
>> >  src/login/logind-session.h |  2 +-
>> >  2 files changed, 10 insertions(+), 7 deletions(-)
>> >
>> > diff --git a/src/login/logind-session.c b/src/login/logind-session.c
>> > index 905e73f..3f4e177 100644
>> > --- a/src/login/logind-session.c
>> > +++ b/src/login/logind-session.c
>> > @@ -1003,14 +1003,14 @@ static int session_vt_fn(sd_event_source *source, const struct signalfd_siginfo
>> >          return 0;
>> >  }
>> >
>> > -void session_prepare_vt(Session *s) {
>> > +int session_prepare_vt(Session *s) {
>> >          int vt, r;
>> >          struct vt_mode mode = { 0 };
>> >          sigset_t mask;
>> >
>> >          vt = session_open_vt(s);
>> >          if (vt < 0)
>> > -                return;
>> > +                return vt;
>>
>> This doesn't work. session_open_vt() returns -1 if the session has no
>
> Humm. David, can we please stick to returning errors as negative errno
> values, and not make up "-1" as error in some cases? Please uniformly
> only return negative errno codes...
>
> So, please session_open_vt() should be fixed to return -EBUSY or -EINVAL
> or something, but not "-1"...

Old legacy.. I fixed it up, changed the !CONFIG_VT case and applied the patch.

Thanks
David


More information about the systemd-devel mailing list