OSDN Git Service

Create user directory on emulated storage.
authorJeff Sharkey <jsharkey@android.com>
Tue, 21 Jul 2015 21:22:01 +0000 (14:22 -0700)
committerJeff Sharkey <jsharkey@android.com>
Tue, 21 Jul 2015 21:22:03 +0000 (14:22 -0700)
When mounting a primary external storage device that is multi-user
aware, ensure that the user-specific directory actually exists before
moving forward.

Bug: 22472026
Change-Id: I33c8eed261a9c0d5acedd5be6133ed9990679d08

VolumeManager.cpp

index 6710b0c..ddb7517 100755 (executable)
@@ -416,6 +416,7 @@ int VolumeManager::linkPrimary(userid_t userId) {
     std::string source(mPrimary->getPath());
     if (mPrimary->getType() == android::vold::VolumeBase::Type::kEmulated) {
         source = StringPrintf("%s/%d", source.c_str(), userId);
+        fs_prepare_dir(source.c_str(), 0755, AID_ROOT, AID_ROOT);
     }
 
     std::string target(StringPrintf("/mnt/user/%d/primary", userId));