summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/media/MediaProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/providers/media/MediaProvider.java')
-rwxr-xr-xsrc/com/android/providers/media/MediaProvider.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 990bd710..ee4aad3e 100755
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -441,6 +441,15 @@ public class MediaProvider extends ContentProvider {
// delete least recently used databases if we are over the limit
String[] databases = mContext.databaseList();
+ // Don't delete wal auxiliary files(db-shm and db-wal) directly because db file may
+ // not be deleted, and it will cause Disk I/O error when accessing this database.
+ List<String> dbList = new ArrayList<String>();
+ for (String database : databases) {
+ if (database != null && database.endsWith(".db")) {
+ dbList.add(database);
+ }
+ }
+ databases = dbList.toArray(new String[0]);
int count = databases.length;
int limit = MAX_EXTERNAL_DATABASES;