Merge "Delete rows for ejected filesystem in a transaction" am: 4243228739
am: f85e0bb209
* commit 'f85e0bb209eb40aa97c4598c0d26a0a983dc2db8':
Delete rows for ejected filesystem in a transaction
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 180fbef..dc868dc 100755
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -289,12 +289,18 @@
String where = FileColumns.STORAGE_ID + "=?";
String[] whereArgs = new String[] { Integer.toString(storage.getStorageId()) };
database.mNumUpdates++;
- db.update("files", values, where, whereArgs);
- // now delete the records
- database.mNumDeletes++;
- int numpurged = db.delete("files", where, whereArgs);
- logToDb(db, "removed " + numpurged +
- " rows for ejected filesystem " + storage.getPath());
+ db.beginTransaction();
+ try {
+ db.update("files", values, where, whereArgs);
+ // now delete the records
+ database.mNumDeletes++;
+ int numpurged = db.delete("files", where, whereArgs);
+ logToDb(db, "removed " + numpurged +
+ " rows for ejected filesystem " + storage.getPath());
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ }
// notify on media Uris as well as the files Uri
context.getContentResolver().notifyChange(
Audio.Media.getContentUri(EXTERNAL_VOLUME), null);