summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-07-27 17:36:47 -0700
committerSteve Kondik <shade@chemlab.org>2016-07-27 18:16:21 -0700
commit0af85965c8a5fbe9066177152e746c90d0d7d8a6 (patch)
treea649f7f5a1824a64a264d52b1fe18a731ca94fda
parent0942a4a56f4ed7457aae76dce3dc43faf5e81cec (diff)
downloadframeworks_base-0af85965c8a5fbe9066177152e746c90d0d7d8a6.zip
frameworks_base-0af85965c8a5fbe9066177152e746c90d0d7d8a6.tar.gz
frameworks_base-0af85965c8a5fbe9066177152e746c90d0d7d8a6.tar.bz2
mountservice: Shut down volumes before restarting framework
* Vold assumes that when FUSE is killed, the mount is gone. This isn't true with sdcardfs, since the daemon doesn't continue to run. Cryptfs was assuming this behavior, and the system would hang during decryption since the emulated storage doesn't get unmounted. * Send the shutdown command before committing suicide. Change-Id: Ifcfa63f0499a717f34482754cea95b90622290c6
-rw-r--r--services/core/java/com/android/server/MountService.java1
1 files changed, 1 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
index 68bd065..41c5301 100644
--- a/services/core/java/com/android/server/MountService.java
+++ b/services/core/java/com/android/server/MountService.java
@@ -2393,6 +2393,7 @@ class MountService extends IMountService.Stub
mHandler.postDelayed(new Runnable() {
public void run() {
try {
+ mConnector.execute("volume", "shutdown");
mCryptConnector.execute("cryptfs", "restart");
} catch (NativeDaemonConnectorException e) {
Slog.e(TAG, "problem executing in background", e);