summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier Roche <didrocks@ubuntu.com>2015-01-26 16:01:11 +0100
committerMartin Pitt <martin.pitt@ubuntu.com>2015-02-18 16:33:46 +0100
commit19e887e709c31ee4366ec44a770d3963cd48cb86 (patch)
tree8e629b2391aa63ca0560da658536547e25494f48
parentac6e2f0dfc2e800f01c79ecea2b811914110a7b9 (diff)
systemd-fsck: always connect to systemd-fsckd
Remove the plymouth running or show-status checks from systemd-fsck. Instead, always connect to systemd-fsckd socket, and let this one decide if we display progress or not.
-rw-r--r--src/fsck/fsck.c12
-rw-r--r--src/fsckd/fsckd.c8
2 files changed, 9 insertions, 11 deletions
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
index 6ccb2e734..9ecba99bb 100644
--- a/src/fsck/fsck.c
+++ b/src/fsck/fsck.c
@@ -45,7 +45,6 @@
static bool arg_skip = false;
static bool arg_force = false;
-static bool arg_show_progress = false;
static const char *arg_repair = "-a";
static void start_target(const char *target) {
@@ -131,8 +130,6 @@ static void test_files(void) {
}
#endif
- if (access("/run/systemd/show-status", F_OK) >= 0 || plymouth_running())
- arg_show_progress = true;
}
static int process_progress(int fd, dev_t device_num) {
@@ -286,11 +283,10 @@ int main(int argc, char *argv[]) {
log_warning_errno(r, "fsck.%s cannot be used for %s: %m", type, device);
}
- if (arg_show_progress)
- if (pipe(progress_pipe) < 0) {
- log_error_errno(errno, "pipe(): %m");
- return EXIT_FAILURE;
- }
+ if (pipe(progress_pipe) < 0) {
+ log_error_errno(errno, "pipe(): %m");
+ return EXIT_FAILURE;
+ }
cmdline[i++] = "/sbin/fsck";
cmdline[i++] = arg_repair;
diff --git a/src/fsckd/fsckd.c b/src/fsckd/fsckd.c
index 39fe899b9..6b2eeb067 100644
--- a/src/fsckd/fsckd.c
+++ b/src/fsckd/fsckd.c
@@ -259,9 +259,11 @@ static int manager_new(Manager **ret, int fd) {
return r;
m->connection_fd = fd;
- m->console = fopen("/dev/console", "we");
- if (!m->console)
- return log_warning_errno(errno, "Can't connect to /dev/console: %m");
+ if (access("/run/systemd/show-status", F_OK) >= 0) {
+ m->console = fopen("/dev/console", "we");
+ if (!m->console)
+ return log_warning_errno(errno, "Can't connect to /dev/console: %m");
+ }
m->percent = 100;
*ret = m;