summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index bbbec665020b..58c966a6aa41 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -2842,8 +2842,9 @@ class StorageManagerService extends IStorageManager.Stub
}
}
+ /** Not thread safe */
class AppFuseMountScope extends AppFuseBridge.MountScope {
- boolean opened = false;
+ private boolean mMounted = false;
public AppFuseMountScope(int uid, int mountId) {
super(uid, mountId);
@@ -2852,8 +2853,9 @@ class StorageManagerService extends IStorageManager.Stub
@Override
public ParcelFileDescriptor open() throws NativeDaemonConnectorException {
try {
- return new ParcelFileDescriptor(
- mVold.mountAppFuse(uid, mountId));
+ final FileDescriptor fd = mVold.mountAppFuse(uid, mountId);
+ mMounted = true;
+ return new ParcelFileDescriptor(fd);
} catch (Exception e) {
throw new NativeDaemonConnectorException("Failed to mount", e);
}
@@ -2872,9 +2874,9 @@ class StorageManagerService extends IStorageManager.Stub
@Override
public void close() throws Exception {
- if (opened) {
+ if (mMounted) {
mVold.unmountAppFuse(uid, mountId);
- opened = false;
+ mMounted = false;
}
}
}