summaryrefslogtreecommitdiffstats
path: root/services/devicepolicy/java/com/android
diff options
context:
space:
mode:
authorKenny Guy <kennyguy@google.com>2015-01-15 18:14:46 +0000
committerKenny Guy <kennyguy@google.com>2015-01-15 18:48:01 +0000
commit212037f7cdbf3ac3712ab16f885d62da7f850fe0 (patch)
treeffe7392d946332578846d8837d349b41659a8392 /services/devicepolicy/java/com/android
parentb018399a3a2762e95126acbe14397eca15bad772 (diff)
downloadframeworks_base-212037f7cdbf3ac3712ab16f885d62da7f850fe0.zip
frameworks_base-212037f7cdbf3ac3712ab16f885d62da7f850fe0.tar.gz
frameworks_base-212037f7cdbf3ac3712ab16f885d62da7f850fe0.tar.bz2
Sync file before using JournaledFile commit.
Ext4 doesn't guarantee that write file.new / close file.new rename file.new to file will mean data in file.new makes it to file atomically. The rename may happen with previous contents of file.new and then later update to new contents See docs for noauto_da_alloc So rebooting the device during JournaledFile.commit may mean we are left with an empty file. Bug: 18590558 Change-Id: I35322c82871bed30c2c6ebbd1388338f0471f3ba
Diffstat (limited to 'services/devicepolicy/java/com/android')
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 579fae4..aae496c 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -60,6 +60,7 @@ import android.os.AsyncTask;
import android.os.Binder;
import android.os.Bundle;
import android.os.Environment;
+import android.os.FileUtils;
import android.os.Handler;
import android.os.IBinder;
import android.os.PersistableBundle;
@@ -1348,6 +1349,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
out.endTag(null, "policies");
out.endDocument();
+ stream.flush();
+ FileUtils.sync(stream);
stream.close();
journal.commit();
sendChangedNotification(userHandle);