am a286480f: Fix the class_reset command
* commit 'a286480f56012abdb4ef4ddab1c19a5c2316b7b8':
Fix the class_reset command
diff --git a/init/init.c b/init/init.c
index 7b4a963..d10ca47 100755
--- a/init/init.c
+++ b/init/init.c
@@ -315,7 +315,11 @@
/* if the service has not yet started, prevent
* it from auto-starting with its class
*/
- svc->flags |= how;
+ if (how == SVC_RESET) {
+ svc->flags |= (svc->flags & SVC_RC_DISABLED) ? SVC_DISABLED : SVC_RESET;
+ } else {
+ svc->flags |= how;
+ }
if (svc->pid) {
NOTICE("service '%s' is being killed\n", svc->name);
diff --git a/init/init.h b/init/init.h
index 2d98c7c..a91d9d4 100644
--- a/init/init.h
+++ b/init/init.h
@@ -71,6 +71,7 @@
#define SVC_CRITICAL 0x20 /* will reboot into recovery if keeps crashing */
#define SVC_RESET 0x40 /* Use when stopping a process, but not disabling
so it can be restarted with its class */
+#define SVC_RC_DISABLED 0x80 /* Remember if the disabled flag was set in the rc script */
#define NR_SVC_SUPP_GIDS 12 /* twelve supplementary groups */
diff --git a/init/init_parser.c b/init/init_parser.c
index fa813b9..13c94eb 100644
--- a/init/init_parser.c
+++ b/init/init_parser.c
@@ -499,6 +499,7 @@
break;
case K_disabled:
svc->flags |= SVC_DISABLED;
+ svc->flags |= SVC_RC_DISABLED;
break;
case K_ioprio:
if (nargs != 3) {