X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fmanager.c;h=3e742f791e1251b3a3f3e257cb1328e113140696;hb=8821a00fd5b8cb349bce66816c213573db05ec46;hp=9684efac8b1cc3c2e4baa98b4aed133fa8f8ce2b;hpb=302e27c89ed57f413d2a136fbe66fde32f016aed;p=elogind.git diff --git a/src/manager.c b/src/manager.c index 9684efac8..3e742f791 100644 --- a/src/manager.c +++ b/src/manager.c @@ -1392,9 +1392,15 @@ static int transaction_add_job_and_dependencies( assert(type < _JOB_TYPE_MAX); assert(unit); - if (type != JOB_STOP && - unit->meta.load_state != UNIT_LOADED) { - dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s failed to load. See logs for details.", unit->meta.id); + if (unit->meta.load_state != UNIT_LOADED && unit->meta.load_state != UNIT_FAILED) { + dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->meta.id); + return -EINVAL; + } + + if (type != JOB_STOP && unit->meta.load_state == UNIT_FAILED) { + dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s failed to load: %s. You might find more information in the logs.", + unit->meta.id, + strerror(-unit->meta.load_error)); return -EINVAL; }