From 2633ea2405fe9036261e499e3d436091642da653 Mon Sep 17 00:00:00 2001 From: Andrew Stormont Date: Thu, 8 Sep 2016 13:02:43 +0100 Subject: 7267 SMF is fast and loose with optional dependencies Reviewed by: Dan McDonald Reviewed by: Jerry Jelinek Reviewed by: Albert Lee Approved by: Dan McDonald --- usr/src/cmd/svc/startd/transition.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'usr/src/cmd/svc/startd/transition.c') diff --git a/usr/src/cmd/svc/startd/transition.c b/usr/src/cmd/svc/startd/transition.c index 4e7a884719..a62d40088c 100644 --- a/usr/src/cmd/svc/startd/transition.c +++ b/usr/src/cmd/svc/startd/transition.c @@ -21,6 +21,8 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2016 RackTop Systems. */ @@ -137,6 +139,13 @@ gt_enter_maint(scf_handle_t *h, graph_vertex_t *v, "%s.\n", v->gv_name); graph_transition_propagate(v, PROPAGATE_STOP, rerr); + + /* + * The maintenance transition may satisfy optional_all/restart + * dependencies and should be propagated to determine + * whether new dependents are satisfiable. + */ + graph_transition_propagate(v, PROPAGATE_SAT, rerr); } else { log_framework(LOG_DEBUG, "Propagating maintenance of %s.\n", v->gv_name); @@ -267,6 +276,12 @@ gt_enter_disabled(scf_handle_t *h, graph_vertex_t *v, graph_transition_propagate(v, PROPAGATE_STOP, rerr); + /* + * The disable transition may satisfy optional_all/restart + * dependencies and should be propagated to determine + * whether new dependents are satisfiable. + */ + graph_transition_propagate(v, PROPAGATE_SAT, rerr); } else { log_framework(LOG_DEBUG, "Propagating disable of %s.\n", v->gv_name); -- cgit v1.2.3