chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
selinux: use setcon() instead of reexec to apply selinux policy
[elogind.git]
/
src
/
mount-setup.c
diff --git
a/src/mount-setup.c
b/src/mount-setup.c
index f236ab741af7ea03137f6411e47625c167b00246..290698939e1f876d43197b5f7e9f059bf3811517 100644
(file)
--- a/
src/mount-setup.c
+++ b/
src/mount-setup.c
@@
-226,7
+226,7
@@
static int nftw_cb(
return 0;
};
return 0;
};
-int mount_setup(
void
) {
+int mount_setup(
bool loaded_policy
) {
const char symlinks[] =
"/proc/kcore\0" "/dev/core\0"
const char symlinks[] =
"/proc/kcore\0" "/dev/core\0"
@@
-247,9
+247,20
@@
int mount_setup(void) {
* the appropriate labels, after mounting. The other virtual
* API file systems like /sys and /proc do not need that, they
* use the same label for all their files. */
* the appropriate labels, after mounting. The other virtual
* API file systems like /sys and /proc do not need that, they
* use the same label for all their files. */
- if (unlink("/dev/.systemd-relabel-run-dev") >= 0) {
+ if (loaded_policy) {
+ usec_t before_relabel, after_relabel;
+ char timespan[FORMAT_TIMESPAN_MAX];
+
+ before_relabel = now(CLOCK_MONOTONIC);
+
nftw("/dev", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
nftw("/run", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
nftw("/dev", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
nftw("/run", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
+
+ after_relabel = now(CLOCK_MONOTONIC);
+
+ log_info("Relabelled /dev and /run in %s.",
+ format_timespan(timespan, sizeof(timespan), after_relabel - before_relabel));
+
}
/* Create a few default symlinks, which are normally created
}
/* Create a few default symlinks, which are normally created