Only write to the pending-backup journal when necessary
We now only commit to the pending-backup journal on disk the first time that a given package is added to the backup set. This avoids a lot of write thrashing of the disk, particularly since Settings tends to call dataChanged() a great many times during boot, while the Settings UI is in use, etc.
This commit is contained in:
@@ -1212,10 +1212,12 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
// Add the caller to the set of pending backups. If there is
|
||||
// one already there, then overwrite it, but no harm done.
|
||||
BackupRequest req = new BackupRequest(app, false);
|
||||
mPendingBackups.put(app, req);
|
||||
|
||||
// Journal this request in case of crash
|
||||
writeToJournalLocked(packageName);
|
||||
if (mPendingBackups.put(app, req) == null) {
|
||||
// Journal this request in case of crash. The put()
|
||||
// operation returned null when this package was not already
|
||||
// in the set; we want to avoid touching the disk redundantly.
|
||||
writeToJournalLocked(packageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user