From: Lennart Poettering Date: Sat, 10 Apr 2010 02:45:44 +0000 (+0200) Subject: unit: issue notify even if the high-level state didn't change X-Git-Tag: v1~581 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=8e471ccd1583371cab19a6263b8952b37d069b07 unit: issue notify even if the high-level state didn't change --- diff --git a/unit.c b/unit.c index bea96a21c..6406015b4 100644 --- a/unit.c +++ b/unit.c @@ -856,8 +856,12 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) { assert(!(os == UNIT_ACTIVE && ns == UNIT_ACTIVATING)); assert(!(os == UNIT_INACTIVE && ns == UNIT_DEACTIVATING)); - if (os == ns) - return; + /* Note that this is called for all low-level state changes, + * even if they might map to the same high-level + * UnitActiveState! That means that ns == os is OK an expected + * behaviour here. For example: if a mount point is remounted + * this function will be called too and the utmp code below + * relies on that! */ if (!UNIT_IS_ACTIVE_OR_RELOADING(os) && UNIT_IS_ACTIVE_OR_RELOADING(ns)) u->meta.active_enter_timestamp = now(CLOCK_REALTIME);