Fix deadlock in removing a user
Cleanup PackageManager settings after the package directories are removed.
Change-Id: I264bc95ea21da653a234d7c81df5b25d4de7aa9e
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java
index c292bbc..b13bb68 100644
--- a/services/java/com/android/server/pm/UserManagerService.java
+++ b/services/java/com/android/server/pm/UserManagerService.java
@@ -523,6 +523,10 @@
synchronized (mUsers) {
result = removeUserLocked(userHandle);
}
+
+ // Cleanup package manager settings
+ mPm.cleanUpUser(userHandle);
+
// Let other services shutdown any activity
Intent addedIntent = new Intent(Intent.ACTION_USER_REMOVED);
addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userHandle);
@@ -555,8 +559,6 @@
return false;
}
- mPm.cleanUpUser(userHandle);
-
// Remove this user from the list
mUsers.remove(userHandle);
// Remove user file