summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/automount.c4
-rw-r--r--src/core/execute.c3
-rw-r--r--src/core/mount.c16
-rw-r--r--src/core/mount.h2
-rw-r--r--src/shared/log.h1
-rw-r--r--src/systemd/sd-messages.h2
6 files changed, 22 insertions, 6 deletions
diff --git a/src/core/automount.c b/src/core/automount.c
index 5bf59df8b..74776646f 100644
--- a/src/core/automount.c
+++ b/src/core/automount.c
@@ -31,6 +31,7 @@
#include "unit.h"
#include "automount.h"
+#include "mount.h"
#include "load-fragment.h"
#include "load-dropin.h"
#include "unit-name.h"
@@ -507,8 +508,7 @@ static void automount_enter_waiting(Automount *a) {
/* We knowingly ignore the results of this call */
mkdir_p_label(a->where, 0555);
- if (dir_is_empty(a->where) <= 0)
- log_notice("%s: Directory %s to mount over is not empty, mounting anyway. (To see the over-mounted files, please manually mount the underlying file system to a secondary location.)", a->meta.id, a->where);
+ warn_if_dir_nonempty(a->meta.id, a->where);
if (pipe2(p, O_NONBLOCK|O_CLOEXEC) < 0) {
r = -errno;
diff --git a/src/core/execute.c b/src/core/execute.c
index e236d38e0..76284700d 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -50,6 +50,7 @@
#include "capability.h"
#include "util.h"
#include "log.h"
+#include "sd-messages.h"
#include "ioprio.h"
#include "securebits.h"
#include "cgroup.h"
@@ -62,8 +63,6 @@
#include "loopback-setup.h"
#include "path-util.h"
#include "syscall-list.h"
-#include "sd-id128.h"
-#include "sd-messages.h"
#define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
diff --git a/src/core/mount.c b/src/core/mount.c
index 09a5d286d..f263d9b9d 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -30,6 +30,7 @@
#include "load-fragment.h"
#include "load-dropin.h"
#include "log.h"
+#include "sd-messages.h"
#include "strv.h"
#include "mkdir.h"
#include "path-util.h"
@@ -927,6 +928,18 @@ fail:
set_free(pid_set);
}
+void warn_if_dir_nonempty(const char *unit, const char* where) {
+ if (dir_is_empty(where) > 0)
+ return;
+ log_struct(LOG_NOTICE,
+ "MESSAGE=%s: Directory %s to mount over is not empty, mounting anyway.",
+ unit, where,
+ "WHERE=%s", where,
+ "_SYSTEMD_UNIT=%s", unit,
+ MESSAGE_ID(SD_MESSAGE_OVERMOUNTING),
+ NULL);
+}
+
static void mount_enter_unmounting(Mount *m) {
int r;
@@ -967,8 +980,7 @@ static void mount_enter_mounting(Mount *m) {
mkdir_p_label(m->where, m->directory_mode);
- if (dir_is_empty(m->where) <= 0)
- log_notice("%s: Directory %s to mount over is not empty, mounting anyway. (To see the over-mounted files, please manually mount the underlying file system to a secondary location.)", m->meta.id, m->where);
+ warn_if_dir_nonempty(m->meta.id, m->where);
/* Create the source directory for bind-mounts if needed */
p = get_mount_parameters_fragment(m);
diff --git a/src/core/mount.h b/src/core/mount.h
index 67d6132a5..30c6d9b24 100644
--- a/src/core/mount.h
+++ b/src/core/mount.h
@@ -119,3 +119,5 @@ MountExecCommand mount_exec_command_from_string(const char *s);
const char* mount_result_to_string(MountResult i);
MountResult mount_result_from_string(const char *s);
+
+void warn_if_dir_nonempty(const char *unit, const char* where);
diff --git a/src/shared/log.h b/src/shared/log.h
index 1bd9dbf27..5c946faf5 100644
--- a/src/shared/log.h
+++ b/src/shared/log.h
@@ -27,6 +27,7 @@
#include <errno.h>
#include "macro.h"
+#include "sd-id128.h"
typedef enum LogTarget{
LOG_TARGET_CONSOLE,
diff --git a/src/systemd/sd-messages.h b/src/systemd/sd-messages.h
index b8b78d10e..bc560947d 100644
--- a/src/systemd/sd-messages.h
+++ b/src/systemd/sd-messages.h
@@ -65,6 +65,8 @@ extern "C" {
#define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41,81,a7,6c,4e,92,45,8a,fa,2e)
+#define SD_MESSAGE_OVERMOUNTING SD_ID128_MAKE(1d,ee,03,69,c7,fc,47,36,b7,09,9b,38,ec,b4,6e,e7)
+
#ifdef __cplusplus
}
#endif