Merge changes Ibe310d58,If88dceda into main am: dd3d34ffa7

Original change: https://android-review.googlesource.com/c/platform/system/core/+/2782287

Change-Id: I7b20669463ca407709cd0479783eab96071349e1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Daniel Zheng 2023-10-10 23:30:51 +00:00 committed by Automerger Merge Worker
commit 4ff080089c
4 changed files with 15 additions and 3 deletions

View file

@ -91,6 +91,18 @@ struct CowHeader {
// Scratch space used during merge
uint32_t buffer_size;
} __attribute__((packed));
struct CowHeaderV3 : public CowHeader {
// Location of sequence buffer in COW.
uint64_t sequence_buffer_offset;
// Size, in bytes, of the CowResumePoint buffer.
uint32_t resume_buffer_size;
// Size, in bytes, of the CowOperation buffer.
uint32_t op_buffer_size;
// Compression Algorithm
uint32_t compression_algorithm;
} __attribute__((packed));
// This structure is the same size of a normal Operation, but is repurposed for the footer.

View file

@ -63,7 +63,6 @@ class CowWriterBase : public ICowWriter {
bool ValidateNewBlock(uint64_t new_block);
CowOptions options_;
CowHeader header_{};
android::base::unique_fd fd_;
bool is_dev_null_ = false;

View file

@ -243,7 +243,7 @@ bool CowWriterV2::OpenForWrite() {
// Headers are not complete, but this ensures the file is at the right
// position.
if (!android::base::WriteFully(fd_, &header_, sizeof(header_))) {
if (!android::base::WriteFully(fd_, &header_, sizeof(CowHeader))) {
PLOG(ERROR) << "write failed";
return false;
}
@ -262,7 +262,7 @@ bool CowWriterV2::OpenForWrite() {
return false;
}
if (lseek(fd_.get(), sizeof(header_) + header_.buffer_size, SEEK_SET) < 0) {
if (lseek(fd_.get(), sizeof(CowHeader) + header_.buffer_size, SEEK_SET) < 0) {
PLOG(ERROR) << "lseek failed";
return false;
}

View file

@ -63,6 +63,7 @@ class CowWriterV2 : public CowWriterBase {
private:
CowFooter footer_{};
CowHeader header_{};
CowCompression compression_;
// in the case that we are using one thread for compression, we can store and re-use the same
// compressor