Improve vold logging.
This patch adds more error logging to mountFstab. In a few cases, the
were error paths with no existing error logs. In other cases, the log
messages are there to help understand error flow in logs (for example
when a function with lots of error paths returns false).
Bug: 205314634
Test: treehugger builds
Change-Id: I464edc6e74ea0d7419ee9d9b75fd238752c13f4f
diff --git a/MetadataCrypt.cpp b/MetadataCrypt.cpp
index 8b2b960..0bd6100 100644
--- a/MetadataCrypt.cpp
+++ b/MetadataCrypt.cpp
@@ -245,7 +245,8 @@
<< fs_type;
auto encrypted_state = android::base::GetProperty("ro.crypto.state", "");
if (encrypted_state != "" && encrypted_state != "encrypted") {
- LOG(DEBUG) << "fscrypt_enable_crypto got unexpected starting state: " << encrypted_state;
+ LOG(ERROR) << "fscrypt_mount_metadata_encrypted got unexpected starting state: "
+ << encrypted_state;
return false;
}
@@ -282,12 +283,18 @@
auto gen = needs_encrypt ? makeGen(options) : neverGen();
KeyBuffer key;
- if (!read_key(data_rec->metadata_key_dir, gen, &key)) return false;
+ if (!read_key(data_rec->metadata_key_dir, gen, &key)) {
+ LOG(ERROR) << "read_key failed in mountFstab";
+ return false;
+ }
std::string crypto_blkdev;
uint64_t nr_sec;
- if (!create_crypto_blk_dev(kDmNameUserdata, blk_device, key, options, &crypto_blkdev, &nr_sec))
+ if (!create_crypto_blk_dev(kDmNameUserdata, blk_device, key, options, &crypto_blkdev,
+ &nr_sec)) {
+ LOG(ERROR) << "create_crypto_blk_dev failed in mountFstab";
return false;
+ }
if (needs_encrypt) {
if (should_format) {
@@ -301,10 +308,17 @@
LOG(ERROR) << "Unknown filesystem type: " << fs_type;
return false;
}
- LOG(DEBUG) << "Format (err=" << error << ") " << crypto_blkdev << " on " << mount_point;
- if (error != 0) return false;
+ if (error != 0) {
+ LOG(ERROR) << "Format of " << crypto_blkdev << " for " << mount_point
+ << " failed (err=" << error << ").";
+ return false;
+ }
+ LOG(DEBUG) << "Format of " << crypto_blkdev << " for " << mount_point << " succeeded.";
} else {
- if (!encrypt_inplace(crypto_blkdev, blk_device, nr_sec, false)) return false;
+ if (!encrypt_inplace(crypto_blkdev, blk_device, nr_sec, false)) {
+ LOG(ERROR) << "encrypt_inplace failed in mountFstab";
+ return false;
+ }
}
}