Loading fs_mgr/libsnapshot/android/snapshot/snapshot.proto +4 −1 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ enum UpdateState { Cancelled = 7; }; // Next: 5 // Next: 6 message SnapshotUpdateStatus { UpdateState state = 1; Loading @@ -133,6 +133,9 @@ message SnapshotUpdateStatus { // Sectors allocated for metadata in all the snapshot devices. uint64 metadata_sectors = 4; // Whether compression/dm-user was used for any snapshots. bool compression_enabled = 5; } // Next: 4 Loading fs_mgr/libsnapshot/include/libsnapshot/snapshot.h +4 −0 Original line number Diff line number Diff line Loading @@ -353,6 +353,10 @@ class SnapshotManager final : public ISnapshotManager { uevent_regen_callback_ = callback; } // If true, compression is enabled for this update. This is used by // first-stage to decide whether to launch snapuserd. bool IsSnapuserdRequired(); private: FRIEND_TEST(SnapshotTest, CleanFirstStageMount); FRIEND_TEST(SnapshotTest, CreateSnapshot); Loading fs_mgr/libsnapshot/snapshot.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -2283,6 +2283,7 @@ SnapshotUpdateStatus SnapshotManager::ReadSnapshotUpdateStatus(LockedFile* lock) bool SnapshotManager::WriteUpdateState(LockedFile* lock, UpdateState state) { SnapshotUpdateStatus status = {}; status.set_state(state); status.set_compression_enabled(IsCompressionEnabled()); return WriteSnapshotUpdateStatus(lock, status); } Loading Loading @@ -2855,7 +2856,7 @@ std::unique_ptr<ISnapshotWriter> SnapshotManager::OpenSnapshotWriter( return nullptr; } if (IsCompressionEnabled()) { if (status.compression_enabled()) { return OpenCompressedSnapshotWriter(lock.get(), source_device, params.GetPartitionName(), status, paths); } Loading Loading @@ -3346,5 +3347,13 @@ bool SnapshotManager::WaitForDevice(const std::string& device, return true; } bool SnapshotManager::IsSnapuserdRequired() { auto lock = LockExclusive(); if (!lock) return false; auto status = ReadSnapshotUpdateStatus(lock.get()); return status.state() != UpdateState::None && status.compression_enabled(); } } // namespace snapshot } // namespace android Loading
fs_mgr/libsnapshot/android/snapshot/snapshot.proto +4 −1 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ enum UpdateState { Cancelled = 7; }; // Next: 5 // Next: 6 message SnapshotUpdateStatus { UpdateState state = 1; Loading @@ -133,6 +133,9 @@ message SnapshotUpdateStatus { // Sectors allocated for metadata in all the snapshot devices. uint64 metadata_sectors = 4; // Whether compression/dm-user was used for any snapshots. bool compression_enabled = 5; } // Next: 4 Loading
fs_mgr/libsnapshot/include/libsnapshot/snapshot.h +4 −0 Original line number Diff line number Diff line Loading @@ -353,6 +353,10 @@ class SnapshotManager final : public ISnapshotManager { uevent_regen_callback_ = callback; } // If true, compression is enabled for this update. This is used by // first-stage to decide whether to launch snapuserd. bool IsSnapuserdRequired(); private: FRIEND_TEST(SnapshotTest, CleanFirstStageMount); FRIEND_TEST(SnapshotTest, CreateSnapshot); Loading
fs_mgr/libsnapshot/snapshot.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -2283,6 +2283,7 @@ SnapshotUpdateStatus SnapshotManager::ReadSnapshotUpdateStatus(LockedFile* lock) bool SnapshotManager::WriteUpdateState(LockedFile* lock, UpdateState state) { SnapshotUpdateStatus status = {}; status.set_state(state); status.set_compression_enabled(IsCompressionEnabled()); return WriteSnapshotUpdateStatus(lock, status); } Loading Loading @@ -2855,7 +2856,7 @@ std::unique_ptr<ISnapshotWriter> SnapshotManager::OpenSnapshotWriter( return nullptr; } if (IsCompressionEnabled()) { if (status.compression_enabled()) { return OpenCompressedSnapshotWriter(lock.get(), source_device, params.GetPartitionName(), status, paths); } Loading Loading @@ -3346,5 +3347,13 @@ bool SnapshotManager::WaitForDevice(const std::string& device, return true; } bool SnapshotManager::IsSnapuserdRequired() { auto lock = LockExclusive(); if (!lock) return false; auto status = ReadSnapshotUpdateStatus(lock.get()); return status.state() != UpdateState::None && status.compression_enabled(); } } // namespace snapshot } // namespace android