fsync所有类型文件

Signed-off-by: Zhou Shihui <zhoushihui4@huawei.com>
This commit is contained in:
Zhou Shihui 2024-11-13 15:56:05 +08:00
parent 607d14a403
commit dbf7f37001
3 changed files with 11 additions and 14 deletions

View File

@ -330,7 +330,7 @@ private:
static EnforceMetadataProcessForApp enforceMetadataProcessForApp_;
static bool OpenEncryptionHandle();
#endif
static void FsyncResFile(const std::string &path, const ExtractFileType &extractFileType);
static void FsyncFile(const std::string &path);
static std::string GetSameLevelTmpPath(const std::string &path);
};
} // namespace AppExecFwk

View File

@ -104,7 +104,6 @@ bool BaseExtractor::ExtractFile(const std::string &fileName, const std::string &
}
return false;
}
fileStream.flush();
fileStream.clear();
fileStream.close();
return true;

View File

@ -617,23 +617,21 @@ void InstalldOperator::ExtractTargetFile(const BundleExtractor &extractor, const
LOG_E(BMS_TAG_INSTALLD, "ChangeModeFile %{public}s failed, errno: %{public}d", path.c_str(), errno);
return;
}
FsyncResFile(path, extractFileType);
FsyncFile(path);
LOG_D(BMS_TAG_INSTALLD, "extract file success, path : %{public}s", path.c_str());
}
void InstalldOperator::FsyncResFile(const std::string &path, const ExtractFileType &extractFileType)
void InstalldOperator::FsyncFile(const std::string &path)
{
if (extractFileType == ExtractFileType::RES_FILE) {
int32_t fileFd = open(path.c_str(), O_RDONLY);
if (fileFd < 0) {
LOG_E(BMS_TAG_INSTALLER, "open %{public}s failed", path.c_str());
return;
}
if (fsync(fileFd) != 0) {
LOG_E(BMS_TAG_INSTALLER, "fsync %{public}s failed", path.c_str());
}
close(fileFd);
int32_t fileFd = open(path.c_str(), O_RDONLY);
if (fileFd < 0) {
LOG_E(BMS_TAG_INSTALLER, "open %{public}s failed %{public}d", path.c_str(), errno);
return;
}
if (fsync(fileFd) != 0) {
LOG_E(BMS_TAG_INSTALLER, "fsync %{public}s failed %{public}d", path.c_str(), errno);
}
close(fileFd);
}
bool InstalldOperator::DeterminePrefix(const ExtractFileType &extractFileType, const std::string &cpuAbi,