vold: Use process-killer when unmounting asec containers
Signed-off-by: San Mehat <san@google.com>
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index d9c354d..1e1f15f 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -37,6 +37,8 @@
#include "Loop.h"
#include "Fat.h"
+extern "C" void KillProcessesWithOpenFiles(const char *, int, int, int);
+
VolumeManager *VolumeManager::sInstance = NULL;
VolumeManager *VolumeManager::Instance() {
@@ -285,6 +287,11 @@
}
LOGW("ASEC %s unmount attempt %d failed (%s)",
id, i +1, strerror(errno));
+
+ if (i >= 5) {
+ KillProcessesWithOpenFiles(mountPoint, (i < 7 ? 0 : 1),
+ NULL, 0);
+ }
usleep(1000 * 250);
}
if (rc) {