diff options
| -rw-r--r-- | services/core/java/com/android/server/StorageManagerService.java | 12 |
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; } } } |