Skip to content

Commit

Permalink
Merge "Don't call block checkpoint functions above dm-default-key" in…
Browse files Browse the repository at this point in the history
…to rvc-dev

Former-commit-id: 507d21905b2fee9cdaa5d9f92fc46f5a912dfda4
  • Loading branch information
TreeHugger Robot authored and Android (Google) Code Review committed Jun 18, 2020
2 parents 95d830d + 164f204 commit f984eab
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
17 changes: 10 additions & 7 deletions fs_mgr/fs_mgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1065,7 +1065,8 @@ static bool SupportsCheckpoint(FstabEntry* entry) {

class CheckpointManager {
public:
CheckpointManager(int needs_checkpoint = -1) : needs_checkpoint_(needs_checkpoint) {}
CheckpointManager(int needs_checkpoint = -1, bool metadata_encrypted = false)
: needs_checkpoint_(needs_checkpoint), metadata_encrypted_(metadata_encrypted) {}

bool NeedsCheckpoint() {
if (needs_checkpoint_ != UNKNOWN) {
Expand All @@ -1083,7 +1084,7 @@ class CheckpointManager {
return true;
}

if (entry->fs_mgr_flags.checkpoint_blk) {
if (entry->fs_mgr_flags.checkpoint_blk && !metadata_encrypted_) {
call_vdc({"checkpoint", "restoreCheckpoint", entry->blk_device}, nullptr);
}

Expand Down Expand Up @@ -1192,6 +1193,7 @@ class CheckpointManager {

enum { UNKNOWN = -1, NO = 0, YES = 1 };
int needs_checkpoint_;
bool metadata_encrypted_;
std::map<std::string, std::string> device_map_;
};

Expand Down Expand Up @@ -1825,11 +1827,11 @@ int fs_mgr_do_mount_one(const FstabEntry& entry, const std::string& mount_point)
// in turn, and stop on 1st success, or no more match.
static int fs_mgr_do_mount_helper(Fstab* fstab, const std::string& n_name,
const std::string& n_blk_device, const char* tmp_mount_point,
int needs_checkpoint) {
int needs_checkpoint, bool metadata_encrypted) {
int mount_errors = 0;
int first_mount_errno = 0;
std::string mount_point;
CheckpointManager checkpoint_manager(needs_checkpoint);
CheckpointManager checkpoint_manager(needs_checkpoint, metadata_encrypted);
AvbUniquePtr avb_handle(nullptr);

if (!fstab) {
Expand Down Expand Up @@ -1939,12 +1941,13 @@ static int fs_mgr_do_mount_helper(Fstab* fstab, const std::string& n_name,
}

int fs_mgr_do_mount(Fstab* fstab, const char* n_name, char* n_blk_device, char* tmp_mount_point) {
return fs_mgr_do_mount_helper(fstab, n_name, n_blk_device, tmp_mount_point, -1);
return fs_mgr_do_mount_helper(fstab, n_name, n_blk_device, tmp_mount_point, -1, false);
}

int fs_mgr_do_mount(Fstab* fstab, const char* n_name, char* n_blk_device, char* tmp_mount_point,
bool needs_checkpoint) {
return fs_mgr_do_mount_helper(fstab, n_name, n_blk_device, tmp_mount_point, needs_checkpoint);
bool needs_checkpoint, bool metadata_encrypted) {
return fs_mgr_do_mount_helper(fstab, n_name, n_blk_device, tmp_mount_point, needs_checkpoint,
metadata_encrypted);
}

/*
Expand Down
2 changes: 1 addition & 1 deletion fs_mgr/include/fs_mgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ int fs_mgr_mount_all(android::fs_mgr::Fstab* fstab, int mount_mode);
int fs_mgr_do_mount(android::fs_mgr::Fstab* fstab, const char* n_name, char* n_blk_device,
char* tmp_mount_point);
int fs_mgr_do_mount(android::fs_mgr::Fstab* fstab, const char* n_name, char* n_blk_device,
char* tmp_mount_point, bool need_cp);
char* tmp_mount_point, bool need_cp, bool metadata_encrypted);
int fs_mgr_do_mount_one(const android::fs_mgr::FstabEntry& entry,
const std::string& mount_point = "");
int fs_mgr_do_tmpfs_mount(const char *n_name);
Expand Down

0 comments on commit f984eab

Please sign in to comment.