diff options
| author | 2023-07-04 08:59:25 +0000 | |
|---|---|---|
| committer | 2023-07-04 08:59:25 +0000 | |
| commit | d9fffc5b5ffc4d896a71a789cc6e196aa34e304e (patch) | |
| tree | e7c9717bce5091373d81b7bfed27895b1d8ef820 | |
| parent | b32659ce7b2f999ea28fb7b33429d8f0450de4aa (diff) | |
| parent | ae3e9ae7ce09db3e93be5b0243e318653b6d9327 (diff) | |
Merge "Adjust obb path to be able calculate external's codeSize well wo/quota"
| -rw-r--r-- | cmds/installd/InstalldNativeService.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/cmds/installd/InstalldNativeService.cpp b/cmds/installd/InstalldNativeService.cpp index e84428ee41..c6132e8ceb 100644 --- a/cmds/installd/InstalldNativeService.cpp +++ b/cmds/installd/InstalldNativeService.cpp @@ -2374,11 +2374,15 @@ static void collectManualExternalStatsForUser(const std::string& path, struct st p->fts_number = p->fts_parent->fts_number; switch (p->fts_info) { case FTS_D: - if (p->fts_level == 4 + if (p->fts_level == 3 + && !strcmp(p->fts_parent->fts_name, "obb") + && !strcmp(p->fts_parent->fts_parent->fts_name, "Android")) { + p->fts_number = 1; + } else if (p->fts_level == 4 && !strcmp(p->fts_name, "cache") && !strcmp(p->fts_parent->fts_parent->fts_name, "data") && !strcmp(p->fts_parent->fts_parent->fts_parent->fts_name, "Android")) { - p->fts_number = 1; + p->fts_number = 2; } [[fallthrough]]; // to count the directory case FTS_DEFAULT: @@ -2387,9 +2391,13 @@ static void collectManualExternalStatsForUser(const std::string& path, struct st case FTS_SLNONE: int64_t size = (p->fts_statp->st_blocks * 512); if (p->fts_number == 1) { - stats->cacheSize += size; + stats->codeSize += size; + } else { + if (p->fts_number == 2) { + stats->cacheSize += size; + } + stats->dataSize += size; } - stats->dataSize += size; break; } } @@ -2735,11 +2743,6 @@ binder::Status InstalldNativeService::getUserSize(const std::optional<std::strin extStats.dataSize = dataSize; atrace_pm_end(); } else { - atrace_pm_begin("obb"); - auto obbPath = create_data_path(uuid_) + "/media/obb"; - calculate_tree_size(obbPath, &extStats.codeSize); - atrace_pm_end(); - atrace_pm_begin("code"); calculate_tree_size(create_data_app_path(uuid_), &stats.codeSize); atrace_pm_end(); @@ -2770,9 +2773,10 @@ binder::Status InstalldNativeService::getUserSize(const std::optional<std::strin atrace_pm_begin("external"); auto dataMediaPath = create_data_media_path(uuid_, userId); collectManualExternalStatsForUser(dataMediaPath, &extStats); + #if MEASURE_DEBUG LOG(DEBUG) << "Measured external data " << extStats.dataSize << " cache " - << extStats.cacheSize; + << extStats.cacheSize << " code " << extStats.codeSize; #endif atrace_pm_end(); |