From: Mike Yuan Date: Wed, 16 Oct 2024 16:59:45 +0000 (+0200) Subject: core/unit: put the reload job back to queue if unit is refreshing X-Git-Tag: v257-rc1~147^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8fa230596c957e252e29b68c0660c5b6752f8be;p=thirdparty%2Fsystemd.git core/unit: put the reload job back to queue if unit is refreshing --- diff --git a/src/core/unit.c b/src/core/unit.c index 4384e3bfcbf..230a782631a 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2044,7 +2044,11 @@ int unit_reload(Unit *u) { return -EBADR; state = unit_active_state(u); - if (state == UNIT_RELOADING) + if (IN_SET(state, UNIT_RELOADING, UNIT_REFRESHING)) + /* "refreshing" means some resources in the unit namespace is being updated. Unlike reload, + * the unit processes aren't made aware of refresh. Let's put the job back to queue + * in both cases, as refresh typically takes place before reload and it's better to wait + * for it rather than failing. */ return -EAGAIN; if (state != UNIT_ACTIVE)