Signed-off-by: John Crispin <blogic@openwrt.org>
@@ -149,6 +149,9 @@ instance_exit(struct uloop_process *p, int ret)
runtime = tp.tv_sec - in->start.tv_sec;
DEBUG(1, "Instance %s::%s exit with error code %d after %ld seconds\n", in->srv->name, in->name, ret, runtime);
+ if (upgrade_running)
+ return;
+
uloop_timeout_cancel(&in->timeout);
if (in->halt) {
/* no action */
@@ -42,6 +42,7 @@
} while (0)
extern char *ubus_socket;
+extern int upgrade_running;
extern unsigned int debug;
void debug_init(void);
@@ -29,6 +29,8 @@
static struct blob_buf b;
+int upgrade_running = 0;
static int system_board(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
@@ -191,6 +193,8 @@ static int system_upgrade(struct ubus_context *ctx, struct ubus_object *obj,
log_shutdown();
hotplug_shutdown();
+ upgrade_running = 1;
return 0;
}