conf: don't accidently double-mount

Closes #3073. Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 3c9fdb32
......@@ -1847,17 +1847,15 @@ static int mount_entry(const char *fsname, const char *target,
}
if ((mountflags & MS_REMOUNT) || (mountflags & MS_BIND)) {
unsigned long rqd_flags = 0;
unsigned long required_flags = 0;
DEBUG("Remounting \"%s\" on \"%s\" to respect bind or remount options",
srcpath ? srcpath : "(none)", target ? target : "(none)");
if (mountflags & MS_RDONLY)
rqd_flags |= MS_RDONLY;
required_flags |= MS_RDONLY;
#ifdef HAVE_STATVFS
if (srcpath && statvfs(srcpath, &sb) == 0) {
unsigned long required_flags = rqd_flags;
if (sb.f_flag & MS_NOSUID)
required_flags |= MS_NOSUID;
......@@ -1878,8 +1876,7 @@ static int mount_entry(const char *fsname, const char *target,
* mountflags, then skip the remount.
*/
if (!(mountflags & MS_REMOUNT)) {
if (!(required_flags & ~mountflags) &&
rqd_flags == 0) {
if (!(required_flags & ~mountflags)) {
DEBUG("Mountflags already were %lu, skipping remount", mountflags);
goto skipremount;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment