mirror of
https://github.com/systemd/systemd.git
synced 2025-02-04 21:47:31 +03:00
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
This commit is contained in:
parent
b10ceb4783
commit
a60416f319
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user