From: Lennart Poettering Date: Wed, 20 May 2020 17:55:39 +0000 (+0200) Subject: homed: fix return value mix-up X-Git-Tag: v246-rc1~314 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a60416f319439fc34b90225855ee88247c920854;p=thirdparty%2Fsystemd.git homed: fix return value mix-up We generally return > 1 if any of the actions we are doing is instantly complete and == 0 when we started doing it asynchronously (by forking off homework), in our functions that execute operations on homes. Fix a mix-up where the test for this was reversed in home_dispatch_release() and home_dispatch_lock_all(). Fixes: #15684 --- diff --git a/src/home/homed-home.c b/src/home/homed-home.c index 65e363c23c1..be1a710ccc1 100644 --- a/src/home/homed-home.c +++ b/src/home/homed-home.c @@ -2364,7 +2364,7 @@ static int home_dispatch_release(Home *h, Operation *o) { case HOME_UNFIXATED: case HOME_ABSENT: case HOME_INACTIVE: - r = 0; /* done */ + r = 1; /* done */ break; case HOME_LOCKED: @@ -2384,7 +2384,7 @@ static int home_dispatch_release(Home *h, Operation *o) { assert(!h->current_operation); - if (r <= 0) /* failure or completed */ + if (r != 0) /* failure or completed */ operation_result(o, r, &error); else /* ongoing */ h->current_operation = operation_ref(o); @@ -2406,12 +2406,12 @@ static int home_dispatch_lock_all(Home *h, Operation *o) { case HOME_ABSENT: case HOME_INACTIVE: log_info("Home %s is not active, no locking necessary.", h->user_name); - r = 0; /* done */ + r = 1; /* done */ break; case HOME_LOCKED: log_info("Home %s is already locked.", h->user_name); - r = 0; /* done */ + r = 1; /* done */ break; case HOME_ACTIVE: