]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Default to /usr/bin/u?mount, configurable, rather than hard-coded /bin/u?mount.
authorDimitri John Ledkov <dimitri.j.ledkov@intel.com>
Wed, 13 May 2015 13:43:04 +0000 (14:43 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 13 May 2015 13:48:28 +0000 (15:48 +0200)
Makefile.am
configure.ac
src/core/execute.h
src/core/mount.c
src/core/mount.h
src/remount-fs/remount-fs.c

index e4d00a8429874b21b18a06ece07f5e4af86a3480..e8a329f3c507eb9ec5fca491c49b1a49f9682864 100644 (file)
@@ -208,6 +208,8 @@ AM_CPPFLAGS = \
        -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \
        -DQUOTACHECK=\"$(QUOTACHECK)\" \
        -DKEXEC=\"$(KEXEC)\" \
+       -DMOUNT_PATH=\"$(MOUNT_PATH)\" \
+       -DUMOUNT_PATH=\"$(UMOUNT_PATH)\" \
        -DLIBDIR=\"$(libdir)\" \
        -DROOTLIBDIR=\"$(rootlibdir)\" \
        -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
index 600e20383a7e50063ee3681b59debe7d5016f5f1..70e594d3aee3be904d359de6892b1e95f78c9aa6 100644 (file)
@@ -100,6 +100,9 @@ AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec], [$PATH:/usr/sbin:/sbin])
 
 AC_PATH_PROG([SULOGIN], [sulogin], [/usr/sbin/sulogin], [$PATH:/usr/sbin:/sbin])
 
+AC_PATH_PROG([MOUNT_PATH], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin])
+AC_PATH_PROG([UMOUNT_PATH], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin])
+
 AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
 
 M4_DEFINES=
index a0908e0c3dc58ccef08091b03a5550820485d2e6..f5d5c1dee72c94c10f8a720d82e9fb945167b20f 100644 (file)
@@ -165,7 +165,7 @@ struct ExecContext {
 
         /* This is not exposed to the user but available
          * internally. We need it to make sure that whenever we spawn
-         * /bin/mount it is run in the same process group as us so
+         * /usr/bin/mount it is run in the same process group as us so
          * that the autofs logic detects that it belongs to us and we
          * don't enter a trigger loop. */
         bool same_pgrp;
index 8853311bd71ddf6ddc90216deb5a9c80ad052601..8ef3d1755d8991d30846b207496dada10e57b0c2 100644 (file)
@@ -135,8 +135,8 @@ static void mount_init(Unit *u) {
                 m->exec_context.std_error = u->manager->default_std_error;
         }
 
-        /* We need to make sure that /bin/mount is always called in
-         * the same process group as us, so that the autofs kernel
+        /* We need to make sure that /usr/bin/mount is always called
+         * in the same process group as us, so that the autofs kernel
          * side doesn't send us another mount request while we are
          * already trying to comply its last one. */
         m->exec_context.same_pgrp = true;
@@ -833,7 +833,7 @@ static void mount_enter_unmounting(Mount *m) {
         m->control_command_id = MOUNT_EXEC_UNMOUNT;
         m->control_command = m->exec_command + MOUNT_EXEC_UNMOUNT;
 
-        r = exec_command_set(m->control_command, "/bin/umount", m->where, NULL);
+        r = exec_command_set(m->control_command, UMOUNT_PATH, m->where, NULL);
         if (r >= 0 && UNIT(m)->manager->running_as == MANAGER_SYSTEM)
                 r = exec_command_append(m->control_command, "-n", NULL);
         if (r < 0)
@@ -884,7 +884,7 @@ static void mount_enter_mounting(Mount *m) {
                 if (r < 0)
                         goto fail;
 
-                r = exec_command_set(m->control_command, "/bin/mount",
+                r = exec_command_set(m->control_command, MOUNT_PATH,
                                      m->parameters_fragment.what, m->where, NULL);
                 if (r >= 0 && UNIT(m)->manager->running_as == MANAGER_SYSTEM)
                         r = exec_command_append(m->control_command, "-n", NULL);
@@ -931,7 +931,7 @@ static void mount_enter_remounting(Mount *m) {
                 else
                         o = "remount";
 
-                r = exec_command_set(m->control_command, "/bin/mount",
+                r = exec_command_set(m->control_command, MOUNT_PATH,
                                      m->parameters_fragment.what, m->where,
                                      "-o", o, NULL);
                 if (r >= 0 && UNIT(m)->manager->running_as == MANAGER_SYSTEM)
@@ -1582,7 +1582,7 @@ static int mount_enumerate(Manager *m) {
 
                 /* Dispatch this before we dispatch SIGCHLD, so that
                  * we always get the events from /proc/self/mountinfo
-                 * before the SIGCHLD of /bin/mount. */
+                 * before the SIGCHLD of /usr/bin/mount. */
                 r = sd_event_source_set_priority(m->mount_event_source, -10);
                 if (r < 0)
                         goto fail;
index a01e6da194e2ab74a8c83737682f19885d307cb3..280ea0d6383910edef32b1f47c06703ae2a75496 100644 (file)
@@ -28,8 +28,8 @@ typedef struct Mount Mount;
 
 typedef enum MountState {
         MOUNT_DEAD,
-        MOUNT_MOUNTING,               /* /bin/mount is running, but the mount is not done yet. */
-        MOUNT_MOUNTING_DONE,          /* /bin/mount is running, and the mount is done. */
+        MOUNT_MOUNTING,               /* /usr/bin/mount is running, but the mount is not done yet. */
+        MOUNT_MOUNTING_DONE,          /* /usr/bin/mount is running, and the mount is done. */
         MOUNT_MOUNTED,
         MOUNT_REMOUNTING,
         MOUNT_UNMOUNTING,
index 70dacfafc16509a0d41b4b29b36d0cfe85938de5..a09531b26f8347d5f277310d590504d1039deea9 100644 (file)
@@ -94,15 +94,15 @@ int main(int argc, char *argv[]) {
                         const char *arguments[5];
                         /* Child */
 
-                        arguments[0] = "/bin/mount";
+                        arguments[0] = MOUNT_PATH;
                         arguments[1] = me->mnt_dir;
                         arguments[2] = "-o";
                         arguments[3] = "remount";
                         arguments[4] = NULL;
 
-                        execv("/bin/mount", (char **) arguments);
+                        execv(MOUNT_PATH, (char **) arguments);
 
-                        log_error_errno(errno, "Failed to execute /bin/mount: %m");
+                        log_error_errno(errno, "Failed to execute " MOUNT_PATH ": %m");
                         _exit(EXIT_FAILURE);
                 }
 
@@ -142,9 +142,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(MOUNT_PATH " for %s exited with exit status %i.", s, si.si_status);
                                 else
-                                        log_error("/bin/mount for %s terminated by signal %s.", s, signal_to_string(si.si_status));
+                                        log_error(MOUNT_PATH " for %s terminated by signal %s.", s, signal_to_string(si.si_status));
 
                                 ret = EXIT_FAILURE;
                         }