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);