From 6ca4d66a052d0376cee114b8c0d90dded1e45ad4 Mon Sep 17 00:00:00 2001 From: Daniel Zheng Date: Tue, 9 Jan 2024 17:07:05 -0800 Subject: [PATCH] libsnapshot: update type num_compress_threads should be unsigned integer as it can never be negative. Test: th Change-Id: Ic0456ac717483300fa9cbd55eba5cdd0156207a7 --- .../libsnapshot/include/libsnapshot/cow_writer.h | 2 +- fs_mgr/libsnapshot/libsnapshot_cow/writer_v3.cpp | 2 +- fs_mgr/libsnapshot/snapshot.cpp | 15 ++++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/fs_mgr/libsnapshot/include/libsnapshot/cow_writer.h b/fs_mgr/libsnapshot/include/libsnapshot/cow_writer.h index 3bcee21a3..0194ffd7b 100644 --- a/fs_mgr/libsnapshot/include/libsnapshot/cow_writer.h +++ b/fs_mgr/libsnapshot/include/libsnapshot/cow_writer.h @@ -53,7 +53,7 @@ struct CowOptions { uint64_t num_merge_ops = 0; // Number of threads for compression - int num_compress_threads = 0; + uint16_t num_compress_threads = 0; // Batch write cluster ops bool batch_write = false; diff --git a/fs_mgr/libsnapshot/libsnapshot_cow/writer_v3.cpp b/fs_mgr/libsnapshot/libsnapshot_cow/writer_v3.cpp index 051b2fb8a..61124df8c 100644 --- a/fs_mgr/libsnapshot/libsnapshot_cow/writer_v3.cpp +++ b/fs_mgr/libsnapshot/libsnapshot_cow/writer_v3.cpp @@ -114,7 +114,7 @@ void CowWriterV3::SetupHeaders() { } bool CowWriterV3::ParseOptions() { - num_compress_threads_ = std::max(options_.num_compress_threads, 1); + num_compress_threads_ = std::max(int(options_.num_compress_threads), 1); auto parts = android::base::Split(options_.compression, ","); if (parts.size() > 2) { LOG(ERROR) << "failed to parse compression parameters: invalid argument count: " diff --git a/fs_mgr/libsnapshot/snapshot.cpp b/fs_mgr/libsnapshot/snapshot.cpp index 9ce00e5f8..ba5fb8824 100644 --- a/fs_mgr/libsnapshot/snapshot.cpp +++ b/fs_mgr/libsnapshot/snapshot.cpp @@ -1142,8 +1142,8 @@ auto SnapshotManager::CheckMergeState(const std::function& before_cancel return result; } -auto SnapshotManager::CheckMergeState(LockedFile* lock, - const std::function& before_cancel) -> MergeResult { +auto SnapshotManager::CheckMergeState(LockedFile* lock, const std::function& before_cancel) + -> MergeResult { SnapshotUpdateStatus update_status = ReadSnapshotUpdateStatus(lock); switch (update_status.state()) { case UpdateState::None: @@ -1218,8 +1218,8 @@ auto SnapshotManager::CheckMergeState(LockedFile* lock, wrong_phase = true; break; default: - LOG(ERROR) << "Unknown merge status for \"" << snapshot << "\": " << "\"" - << result.state << "\""; + LOG(ERROR) << "Unknown merge status for \"" << snapshot << "\": " + << "\"" << result.state << "\""; if (failure_code == MergeFailureCode::Ok) { failure_code = MergeFailureCode::UnexpectedMergeState; } @@ -2797,8 +2797,8 @@ bool SnapshotManager::UnmapAllSnapshots(LockedFile* lock) { return true; } -auto SnapshotManager::OpenFile(const std::string& file, - int lock_flags) -> std::unique_ptr { +auto SnapshotManager::OpenFile(const std::string& file, int lock_flags) + -> std::unique_ptr { unique_fd fd(open(file.c_str(), O_RDONLY | O_CLOEXEC | O_NOFOLLOW)); if (fd < 0) { PLOG(ERROR) << "Open failed: " << file; @@ -4344,7 +4344,8 @@ bool SnapshotManager::DeleteDeviceIfExists(const std::string& name, } } - LOG(ERROR) << "Device-mapper device " << name << "(" << full_path << ")" << " still in use." + LOG(ERROR) << "Device-mapper device " << name << "(" << full_path << ")" + << " still in use." << " Probably a file descriptor was leaked or held open, or a loop device is" << " attached."; return false;