[systemd-devel] [PATCH] build: lookup for the "mount" binary

Cristian Rodríguez crrodriguez at opensuse.org
Wed Oct 30 19:12:34 CET 2013


Real executable might be in /usr and not in /bin
---
 configure.ac                |  4 ++++
 src/core/mount.c            |  4 ++--
 src/remount-fs/remount-fs.c | 10 +++++-----
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac
index 7e41d57..8ad3c43 100644
--- a/configure.ac
+++ b/configure.ac
@@ -78,6 +78,10 @@ AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod])
 
 AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec])
 
+AC_PATH_PROG([MOUNT_BIN], [mount], [/bin/mount])
+AC_DEFINE_UNQUOTED(MOUNT_BIN, ["$MOUNT_BIN"], [Path to /bin/mount])
+
+
 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
 m4_ifdef([GTK_DOC_CHECK], [
 GTK_DOC_CHECK([1.18],[--flavour no-tmpl])],
diff --git a/src/core/mount.c b/src/core/mount.c
index 88563b3..69c932b 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -915,7 +915,7 @@ static void mount_enter_mounting(Mount *m) {
         if (m->from_fragment)
                 r = exec_command_set(
                                 m->control_command,
-                                "/bin/mount",
+                                MOUNT_BIN,
                                 m->parameters_fragment.what,
                                 m->where,
                                 "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto",
@@ -974,7 +974,7 @@ static void mount_enter_remounting(Mount *m) {
 
                 r = exec_command_set(
                                 m->control_command,
-                                "/bin/mount",
+                                MOUNT_BIN,
                                 m->parameters_fragment.what,
                                 m->where,
                                 "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto",
diff --git a/src/remount-fs/remount-fs.c b/src/remount-fs/remount-fs.c
index 847637a..c1fc78b 100644
--- a/src/remount-fs/remount-fs.c
+++ b/src/remount-fs/remount-fs.c
@@ -96,15 +96,15 @@ int main(int argc, char *argv[]) {
                         const char *arguments[5];
                         /* Child */
 
-                        arguments[0] = "/bin/mount";
+                        arguments[0] = MOUNT_BIN;
                         arguments[1] = me->mnt_dir;
                         arguments[2] = "-o";
                         arguments[3] = "remount";
                         arguments[4] = NULL;
 
-                        execv("/bin/mount", (char **) arguments);
+                        execv(MOUNT_BIN, (char **) arguments);
 
-                        log_error("Failed to execute /bin/mount: %m");
+                        log_error("Failed to execute %s: %m", MOUNT_BIN);
                         _exit(EXIT_FAILURE);
                 }
 
@@ -144,9 +144,9 @@ int main(int argc, char *argv[]) {
                 if (s) {
                         if (!is_clean_exit(si.si_code, si.si_status, NULL)) {
                                 if (si.si_code == CLD_EXITED)
-                                        log_error("/bin/mount for %s exited with exit status %i.", s, si.si_status);
+                                        log_error("%s for %s exited with exit status %i.", MOUNT_BIN, s, si.si_status);
                                 else
-                                        log_error("/bin/mount for %s terminated by signal %s.", s, signal_to_string(si.si_status));
+                                        log_error("%s for %s terminated by signal %s.", MOUNT_BIN, s, signal_to_string(si.si_status));
 
                                 ret = EXIT_FAILURE;
                         }
-- 
1.8.4



More information about the systemd-devel mailing list