diff --git a/VolumeManager.cpp b/VolumeManager.cpp index 9304630..012060b 100644 --- a/VolumeManager.cpp +++ b/VolumeManager.cpp @@ -578,11 +578,17 @@ int VolumeManager::remountUid(uid_t uid, const std::string& mode) { _exit(0); } if (TEMP_FAILURE_RETRY(mount(storageSource.c_str(), "/storage", - NULL, MS_BIND | MS_REC | MS_SLAVE, NULL)) == -1) { + NULL, MS_BIND | MS_REC, NULL)) == -1) { PLOG(ERROR) << "Failed to mount " << storageSource << " for " << de->d_name; _exit(1); } + if (TEMP_FAILURE_RETRY(mount(NULL, "/storage", NULL, + MS_REC | MS_SLAVE, NULL)) == -1) { + PLOG(ERROR) << "Failed to set MS_SLAVE to /storage for " + << de->d_name; + _exit(1); + } // Mount user-specific symlink helper into place userid_t user_id = multiuser_get_user_id(uid);