Follow "atomic" to "group" refactoring.
Remove noisy logging about UIDs that are relying on default cache
quota of 64MiB.
Move away from yucky old statfs() and use statvfs() instead.
Test: /data/nativetest/installd_cache_test/installd_cache_test
Bug: 35812899, 35684969, 36482620
Change-Id: I3d68da97eac2ebcda489bdf9d27061cac5b3f7cc
diff --git a/cmds/installd/InstalldNativeService.cpp b/cmds/installd/InstalldNativeService.cpp
index 9006330..ca4be0a 100644
--- a/cmds/installd/InstalldNativeService.cpp
+++ b/cmds/installd/InstalldNativeService.cpp
@@ -768,15 +768,17 @@
auto noop = (flags & FLAG_FREE_CACHE_NOOP);
int64_t free = data_disk_free(data_path);
- int64_t needed = freeStorageSize - free;
if (free < 0) {
return error("Failed to determine free space for " + data_path);
- } else if (free >= freeStorageSize) {
- return ok();
}
- LOG(DEBUG) << "Found " << data_path << " with " << free << " free; caller requested "
- << freeStorageSize;
+ int64_t needed = freeStorageSize - free;
+ LOG(DEBUG) << "Device " << data_path << " has " << free << " free; requested "
+ << freeStorageSize << "; needed " << needed;
+
+ if (free >= freeStorageSize) {
+ return ok();
+ }
if (flags & FLAG_FREE_CACHE_V2) {
// This new cache strategy fairly removes files from UIDs by deleting
@@ -811,7 +813,9 @@
tracker->cacheQuota = mCacheQuotas[uid];
}
if (tracker->cacheQuota == 0) {
+#if MEASURE_DEBUG
LOG(WARNING) << "UID " << uid << " has no cache quota; assuming 64MB";
+#endif
tracker->cacheQuota = 67108864;
}
trackers[uid] = tracker;