58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
|
From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||
|
Date: Fri, 18 Jul 2014 17:05:18 -0400
|
||
|
Subject: [PATCH] systemd: return the first error from manager_startup()
|
||
|
|
||
|
---
|
||
|
src/core/manager.c | 15 +++++++--------
|
||
|
1 file changed, 7 insertions(+), 8 deletions(-)
|
||
|
|
||
|
diff --git src/core/manager.c src/core/manager.c
|
||
|
index 2e63c5e..0653d7e 100644
|
||
|
--- src/core/manager.c
|
||
|
+++ src/core/manager.c
|
||
|
@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
|
||
|
dual_timestamp_get(&m->units_load_finish_timestamp);
|
||
|
|
||
|
/* Second, deserialize if there is something to deserialize */
|
||
|
- if (serialization) {
|
||
|
- q = manager_deserialize(m, serialization, fds);
|
||
|
- if (q < 0)
|
||
|
- r = q;
|
||
|
- }
|
||
|
+ if (serialization)
|
||
|
+ r = manager_deserialize(m, serialization, fds);
|
||
|
|
||
|
/* Any fds left? Find some unit which wants them. This is
|
||
|
* useful to allow container managers to pass some file
|
||
|
@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
|
||
|
* socket-based activation of entire containers. */
|
||
|
if (fdset_size(fds) > 0) {
|
||
|
q = manager_distribute_fds(m, fds);
|
||
|
- if (q < 0)
|
||
|
+ if (q < 0 && r == 0)
|
||
|
r = q;
|
||
|
}
|
||
|
|
||
|
/* We might have deserialized the notify fd, but if we didn't
|
||
|
* then let's create the bus now */
|
||
|
- manager_setup_notify(m);
|
||
|
+ q = manager_setup_notify(m);
|
||
|
+ if (q < 0 && r == 0)
|
||
|
+ r = q;
|
||
|
|
||
|
/* We might have deserialized the kdbus control fd, but if we
|
||
|
* didn't, then let's create the bus now. */
|
||
|
@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
|
||
|
|
||
|
/* Third, fire things up! */
|
||
|
q = manager_coldplug(m);
|
||
|
- if (q < 0)
|
||
|
+ if (q < 0 && r == 0)
|
||
|
r = q;
|
||
|
|
||
|
if (serialization) {
|
||
|
--
|
||
|
1.7.9.2
|
||
|
|