summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-11-05 22:39:13 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-11-23 19:17:31 -0500
commit056edeb9102c5ba455e1a54af70f282b6138ca33 (patch)
tree46bf5dcdc8ed57f3b469f28e2ddf091236f254a2
parent06d8d842e9de8656d9a46926e7ae7ff967b69ef8 (diff)
manager: only issue overmount warning when the check succeeded
If for any reason the check failed (selinux?), we would still issue the warning. Check the return status.
-rw-r--r--src/core/mount.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index 8b787f66b0..b571db946d 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -814,19 +814,26 @@ fail:
}
void warn_if_dir_nonempty(const char *unit, const char* where) {
+ int r;
+
assert(unit);
assert(where);
- if (dir_is_empty(where) > 0)
+ r = dir_is_empty(where);
+ if (r > 0)
return;
-
- log_struct_unit(LOG_NOTICE,
- unit,
- "MESSAGE=%s: Directory %s to mount over is not empty, mounting anyway.",
- unit, where,
- "WHERE=%s", where,
- MESSAGE_ID(SD_MESSAGE_OVERMOUNTING),
- NULL);
+ else if (r == 0)
+ log_struct_unit(LOG_NOTICE,
+ unit,
+ "MESSAGE=%s: Directory %s to mount over is not empty, mounting anyway.",
+ unit, where,
+ "WHERE=%s", where,
+ MESSAGE_ID(SD_MESSAGE_OVERMOUNTING),
+ NULL);
+ else
+ log_warning_unit(unit,
+ "MESSAGE=Failed to check directory %s: %s",
+ where, strerror(-r));
}
static int fail_if_symlink(const char *unit, const char* where) {