Loading fs_mgr/libsnapshot/cow_snapuserd_test.cpp +13 −9 Original line number Diff line number Diff line Loading @@ -255,17 +255,23 @@ void CowSnapuserdTest::CreateCowDevice() { ASSERT_TRUE(writer.Initialize(cow_system_->fd)); size_t num_blocks = size_ / options.block_size; size_t blk_src_copy = num_blocks; size_t blk_end_copy = blk_src_copy + num_blocks; size_t source_blk = 0; size_t blk_end_copy = num_blocks * 2; size_t source_blk = num_blocks - 1; size_t blk_src_copy = blk_end_copy - 1; while (source_blk < num_blocks) { size_t x = num_blocks; while (1) { ASSERT_TRUE(writer.AddCopy(source_blk, blk_src_copy)); source_blk += 1; blk_src_copy += 1; x -= 1; if (x == 0) { break; } source_blk -= 1; blk_src_copy -= 1; } ASSERT_EQ(blk_src_copy, blk_end_copy); source_blk = num_blocks; blk_src_copy = blk_end_copy; ASSERT_TRUE(writer.AddRawBlocks(source_blk, random_buffer_1_.get(), size_)); Loading @@ -280,11 +286,9 @@ void CowSnapuserdTest::CreateCowDevice() { // Flush operations ASSERT_TRUE(writer.Finalize()); // Construct the buffer required for validation orig_buffer_ = std::make_unique<uint8_t[]>(total_base_size_); std::string zero_buffer(size_, 0); ASSERT_EQ(android::base::ReadFullyAtOffset(base_fd_, orig_buffer_.get(), size_, size_), true); memcpy((char*)orig_buffer_.get() + size_, random_buffer_1_.get(), size_); memcpy((char*)orig_buffer_.get() + (size_ * 2), (void*)zero_buffer.c_str(), size_); Loading fs_mgr/libsnapshot/snapuserd.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -324,8 +324,7 @@ loff_t Snapuserd::GetMergeStartOffset(void* merged_buffer, void* unmerged_buffer reinterpret_cast<struct disk_exception*>((char*)unmerged_buffer + offset); // Unmerged op by the kernel if (merged_de->old_chunk != 0) { CHECK(merged_de->new_chunk != 0); if (merged_de->old_chunk != 0 || merged_de->new_chunk != 0) { CHECK(merged_de->old_chunk == cow_de->old_chunk); CHECK(merged_de->new_chunk == cow_de->new_chunk); Loading @@ -334,11 +333,6 @@ loff_t Snapuserd::GetMergeStartOffset(void* merged_buffer, void* unmerged_buffer continue; } // Merge complete on this exception. However, we don't know how many // merged in this cycle; hence break here. CHECK(merged_de->new_chunk == 0); CHECK(merged_de->old_chunk == 0); break; } Loading Loading
fs_mgr/libsnapshot/cow_snapuserd_test.cpp +13 −9 Original line number Diff line number Diff line Loading @@ -255,17 +255,23 @@ void CowSnapuserdTest::CreateCowDevice() { ASSERT_TRUE(writer.Initialize(cow_system_->fd)); size_t num_blocks = size_ / options.block_size; size_t blk_src_copy = num_blocks; size_t blk_end_copy = blk_src_copy + num_blocks; size_t source_blk = 0; size_t blk_end_copy = num_blocks * 2; size_t source_blk = num_blocks - 1; size_t blk_src_copy = blk_end_copy - 1; while (source_blk < num_blocks) { size_t x = num_blocks; while (1) { ASSERT_TRUE(writer.AddCopy(source_blk, blk_src_copy)); source_blk += 1; blk_src_copy += 1; x -= 1; if (x == 0) { break; } source_blk -= 1; blk_src_copy -= 1; } ASSERT_EQ(blk_src_copy, blk_end_copy); source_blk = num_blocks; blk_src_copy = blk_end_copy; ASSERT_TRUE(writer.AddRawBlocks(source_blk, random_buffer_1_.get(), size_)); Loading @@ -280,11 +286,9 @@ void CowSnapuserdTest::CreateCowDevice() { // Flush operations ASSERT_TRUE(writer.Finalize()); // Construct the buffer required for validation orig_buffer_ = std::make_unique<uint8_t[]>(total_base_size_); std::string zero_buffer(size_, 0); ASSERT_EQ(android::base::ReadFullyAtOffset(base_fd_, orig_buffer_.get(), size_, size_), true); memcpy((char*)orig_buffer_.get() + size_, random_buffer_1_.get(), size_); memcpy((char*)orig_buffer_.get() + (size_ * 2), (void*)zero_buffer.c_str(), size_); Loading
fs_mgr/libsnapshot/snapuserd.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -324,8 +324,7 @@ loff_t Snapuserd::GetMergeStartOffset(void* merged_buffer, void* unmerged_buffer reinterpret_cast<struct disk_exception*>((char*)unmerged_buffer + offset); // Unmerged op by the kernel if (merged_de->old_chunk != 0) { CHECK(merged_de->new_chunk != 0); if (merged_de->old_chunk != 0 || merged_de->new_chunk != 0) { CHECK(merged_de->old_chunk == cow_de->old_chunk); CHECK(merged_de->new_chunk == cow_de->new_chunk); Loading @@ -334,11 +333,6 @@ loff_t Snapuserd::GetMergeStartOffset(void* merged_buffer, void* unmerged_buffer continue; } // Merge complete on this exception. However, we don't know how many // merged in this cycle; hence break here. CHECK(merged_de->new_chunk == 0); CHECK(merged_de->old_chunk == 0); break; } Loading