diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-04-06 23:38:01 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-04-06 23:38:01 +0200 |
commit | 51b4af2c2833691976844a13464c1301643043d3 (patch) | |
tree | a7b525165771dbe03e4f768df80c5150ca49572b | |
parent | build-sys: bump version (diff) | |
download | systemd-51b4af2c2833691976844a13464c1301643043d3.tar.xz systemd-51b4af2c2833691976844a13464c1301643043d3.zip |
mount: relabel both before and after a mount, just in case
-rw-r--r-- | src/mount-setup.c | 9 |
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); |