summaryrefslogtreecommitdiff
path: root/src/mount-setup.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-04-06 23:38:01 +0200
committerLennart Poettering <lennart@poettering.net>2011-04-06 23:38:01 +0200
commit51b4af2c2833691976844a13464c1301643043d3 (patch)
treea7b525165771dbe03e4f768df80c5150ca49572b /src/mount-setup.c
parent42054a3e4496108ea64bc46084bb056e56adec6c (diff)
mount: relabel both before and after a mount, just in case
Diffstat (limited to 'src/mount-setup.c')
-rw-r--r--src/mount-setup.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mount-setup.c b/src/mount-setup.c
index a42ed43957..9bc8946dba 100644
--- a/src/mount-setup.c
+++ b/src/mount-setup.c
@@ -97,11 +97,14 @@ static int mount_one(const MountPoint *p) {
assert(p);
+ /* Relabel first, just in case */
+ label_fix(p->where, true);
+
if ((r = path_is_mount_point(p->where)) < 0)
return r;
if (r > 0)
- goto finish;
+ return 0;
/* The access mode here doesn't really matter too much, since
* the mounted file system will take precedence anyway. */
@@ -122,7 +125,7 @@ static int mount_one(const MountPoint *p) {
return p->fatal ? -errno : 0;
}
-finish:
+ /* Relabel again, since we now mounted something fresh here */
label_fix(p->where, false);
return 0;
@@ -241,7 +244,7 @@ int mount_setup(void) {
/* Nodes in devtmpfs need to be manually updated for the
* appropriate labels, after mounting. The other virtual API
- * file systems do not need. */
+ * file systems do not need that. */
if (unlink("/dev/.systemd-relabel-run-dev") >= 0) {
nftw("/dev", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);