From 57339f47f17b0268f2d05b5e8adde1b1d842fa48 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 14 Nov 2010 21:57:10 +0100 Subject: [PATCH] job: make it possible to wait for devices to be unplugged --- TODO | 2 +- src/job.c | 8 ++++++++ src/unit.c | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index ca39210f10b..d02dbd78e6c 100644 --- a/TODO +++ b/TODO @@ -86,7 +86,7 @@ Pre v12: * fix hotplug transactions -* make it possible to wait for device unplug, i.e. issue "stop" on devices +* plymouth agent start loop External: diff --git a/src/job.c b/src/job.c index 8ab12cd6241..79189f04da1 100644 --- a/src/job.c +++ b/src/job.c @@ -385,6 +385,9 @@ int job_run_and_invalidate(Job *j) { case JOB_START: r = unit_start(j->unit); + + /* If this unit cannot be started, then simply + * wait */ if (r == -EBADR) r = 0; break; @@ -402,6 +405,11 @@ int job_run_and_invalidate(Job *j) { case JOB_STOP: r = unit_stop(j->unit); + + /* If this unit cannot stopped, then simply + * wait. */ + if (r == -EBADR) + r = 0; break; case JOB_RELOAD: diff --git a/src/unit.c b/src/unit.c index 410ff9f6071..a619727f964 100644 --- a/src/unit.c +++ b/src/unit.c @@ -1386,9 +1386,9 @@ bool unit_job_is_applicable(Unit *u, JobType j) { case JOB_VERIFY_ACTIVE: case JOB_START: + case JOB_STOP: return true; - case JOB_STOP: case JOB_RESTART: case JOB_TRY_RESTART: return unit_can_start(u);