OSDN Git Service

Remove OBB bind mounts, now provided by FUSE.
authorJeff Sharkey <jsharkey@android.com>
Wed, 11 Sep 2013 01:25:19 +0000 (18:25 -0700)
committerJeff Sharkey <jsharkey@android.com>
Wed, 11 Sep 2013 01:27:07 +0000 (18:27 -0700)
The OBB storage area is now presented on a per-user basis by the FUSE
daemon, so we no longer need to create bind mounts.  (In fact, we
must use the FUSE daemon since it now correctly synthesizes UID
ownership on a per-user basis.)

Bug: 10506809
Change-Id: I2d6c5643d7c89d7a15ceb28af871e44618ad33ad

vm/native/dalvik_system_Zygote.cpp

index 70d4fea..e2b618b 100644 (file)
@@ -271,18 +271,14 @@ static int mountEmulatedStorage(uid_t uid, u4 mountMode) {
 
         // Prepare source paths
         char source_user[PATH_MAX];
-        char source_obb[PATH_MAX];
         char target_user[PATH_MAX];
 
         // /mnt/shell/emulated/0
         snprintf(source_user, PATH_MAX, "%s/%d", source, userid);
-        // /mnt/shell/emulated/obb
-        snprintf(source_obb, PATH_MAX, "%s/obb", source);
         // /storage/emulated/0
         snprintf(target_user, PATH_MAX, "%s/%d", target, userid);
 
         if (fs_prepare_dir(source_user, 0000, 0, 0) == -1
-                || fs_prepare_dir(source_obb, 0000, 0, 0) == -1
                 || fs_prepare_dir(target_user, 0000, 0, 0) == -1) {
             return -1;
         }
@@ -301,23 +297,7 @@ static int mountEmulatedStorage(uid_t uid, u4 mountMode) {
             }
         }
 
-        // Now that user is mounted, prepare and mount OBB storage
-        // into place for current user
-        char target_android[PATH_MAX];
-        char target_obb[PATH_MAX];
-
-        // /storage/emulated/0/Android
-        snprintf(target_android, PATH_MAX, "%s/%d/Android", target, userid);
-        // /storage/emulated/0/Android/obb
-        snprintf(target_obb, PATH_MAX, "%s/%d/Android/obb", target, userid);
-
-        if (fs_prepare_dir(target_android, 0000, 0, 0) == -1
-                || fs_prepare_dir(target_obb, 0000, 0, 0) == -1
-                || fs_prepare_dir(legacy, 0000, 0, 0) == -1) {
-            return -1;
-        }
-        if (mount(source_obb, target_obb, NULL, MS_BIND, NULL) == -1) {
-            ALOGE("Failed to mount %s to %s: %s", source_obb, target_obb, strerror(errno));
+        if (fs_prepare_dir(legacy, 0000, 0, 0) == -1) {
             return -1;
         }