diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp index ba0764b4f7336d6c4d47ad0004c8d858798667ba..bc03911e38961bb6ae7c36e2cbb14bb03da869ad 100644 --- a/frameworks/native/backup_ext/src/ext_extension.cpp +++ b/frameworks/native/backup_ext/src/ext_extension.cpp @@ -329,13 +329,13 @@ tuple BackupExtExtension::GetIncreFileHandleForSpec } std::unique_lock lock(reportHashLock_); reportHashSrcPathMap_.emplace(fileName, reportFullHashName); - lock.unlock(); return { errCode, move(fd), move(reportHashFd) }; } UniqueFd reportFd(open(reportFullFileName.data(), O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR)); if (reportFd < 0) { HILOGE("Failed to open report file = %{public}s, err = %{public}d", GetAnonyPath(reportFullFileName).c_str(), errno); + errCode = errno; } return { errCode, move(fd), move(reportFd) }; } diff --git a/frameworks/native/backup_ext/src/sub_ext_extension.cpp b/frameworks/native/backup_ext/src/sub_ext_extension.cpp index 5f67ee933f366f3022ec65313b1872efb4578de1..8b9d8fea40279b5f3f28d2a55ae7c644f9ec24d5 100644 --- a/frameworks/native/backup_ext/src/sub_ext_extension.cpp +++ b/frameworks/native/backup_ext/src/sub_ext_extension.cpp @@ -1392,6 +1392,7 @@ void BackupExtExtension::RmBigFileReportForSpecialCloneCloud(const std::string & { // 删除大文件的rp文件 string reportFileName = GetReportFileName(srcFileName); + std::unique_lock lock(reportHashLock_); if (reportHashSrcPathMap_.empty()) { if (!RemoveFile(reportFileName)) { HILOGE("Failed to delete backup report %{public}s, err = %{public}d", @@ -1399,7 +1400,6 @@ void BackupExtExtension::RmBigFileReportForSpecialCloneCloud(const std::string & } return; } - std::unique_lock lock(reportHashLock_); auto iter = reportHashSrcPathMap_.find(srcFileName); if (iter == reportHashSrcPathMap_.end()) { if (!RemoveFile(reportFileName)) { @@ -1416,6 +1416,5 @@ void BackupExtExtension::RmBigFileReportForSpecialCloneCloud(const std::string & GetAnonyPath(reportHashFilePath).c_str(), errno); } reportHashSrcPathMap_.erase(iter); - lock.unlock(); } } // namespace OHOS::FileManagement::Backup