diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 57a896797f14..6f1e8510fc37 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4539,25 +4539,34 @@ public class PackageManagerService extends IPackageManager.Stub { try { IMountService ms = PackageHelper.getMountService(); if (ms != null) { - final long interval = android.provider.Settings.Global.getLong( - mContext.getContentResolver(), - android.provider.Settings.Global.FSTRIM_MANDATORY_INTERVAL, - DEFAULT_MANDATORY_FSTRIM_INTERVAL); - if (interval > 0) { - final long timeSinceLast = System.currentTimeMillis() - ms.lastMaintenance(); - if (timeSinceLast > interval) { - Slog.w(TAG, "No disk maintenance in " + timeSinceLast - + "; running immediately"); - if (!isFirstBoot()) { - try { - ActivityManagerNative.getDefault().showBootMessage( - mContext.getResources().getString( - R.string.android_upgrading_fstrim), true); - } catch (RemoteException e) { - } + final boolean isUpgrade = isUpgrade(); + boolean doTrim = isUpgrade; + if (doTrim) { + Slog.w(TAG, "Running disk maintenance immediately due to system update"); + } else { + final long interval = android.provider.Settings.Global.getLong( + mContext.getContentResolver(), + android.provider.Settings.Global.FSTRIM_MANDATORY_INTERVAL, + DEFAULT_MANDATORY_FSTRIM_INTERVAL); + if (interval > 0) { + final long timeSinceLast = System.currentTimeMillis() - ms.lastMaintenance(); + if (timeSinceLast > interval) { + doTrim = true; + Slog.w(TAG, "No disk maintenance in " + timeSinceLast + + "; running immediately"); + } + } + } + if (doTrim) { + if (!isFirstBoot()) { + try { + ActivityManagerNative.getDefault().showBootMessage( + mContext.getResources().getString( + R.string.android_upgrading_fstrim), true); + } catch (RemoteException e) { } - ms.runMaintenance(); } + ms.runMaintenance(); } } else { Slog.e(TAG, "Mount service unavailable!"); |
