Merge "recovery: replacing fs_mgr_read_fstab() with new fs_mgr APIs"

This commit is contained in:
Treehugger Robot 2017-03-10 16:06:00 +00:00 committed by Gerrit Code Review
commit 7a0dfec771
4 changed files with 13 additions and 44 deletions

View file

@ -29,27 +29,14 @@
#include <android-base/unique_fd.h> #include <android-base/unique_fd.h>
#include <fs_mgr.h> #include <fs_mgr.h>
static struct fstab* read_fstab(std::string* err) {
std::string ro_hardware = android::base::GetProperty("ro.hardware", "");
if (ro_hardware.empty()) {
*err = "failed to get ro.hardware";
return nullptr;
}
// The fstab path is always "/fstab.${ro.hardware}".
std::string fstab_path = "/fstab." + ro_hardware;
struct fstab* fstab = fs_mgr_read_fstab(fstab_path.c_str());
if (fstab == nullptr) {
*err = "failed to read " + fstab_path;
}
return fstab;
}
static std::string get_misc_blk_device(std::string* err) { static std::string get_misc_blk_device(std::string* err) {
struct fstab* fstab = read_fstab(err); std::unique_ptr<fstab, decltype(&fs_mgr_free_fstab)> fstab(fs_mgr_read_fstab_default(),
if (fstab == nullptr) { fs_mgr_free_fstab);
if (!fstab) {
*err = "failed to read default fstab";
return ""; return "";
} }
fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/misc"); fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc");
if (record == nullptr) { if (record == nullptr) {
*err = "failed to find /misc partition"; *err = "failed to find /misc partition";
return ""; return "";

View file

@ -44,7 +44,7 @@ void load_volume_table()
int i; int i;
int ret; int ret;
fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); fstab = fs_mgr_read_fstab_with_dt("/etc/recovery.fstab");
if (!fstab) { if (!fstab) {
LOG(ERROR) << "failed to read /etc/recovery.fstab"; LOG(ERROR) << "failed to read /etc/recovery.fstab";
return; return;

View file

@ -24,21 +24,14 @@
// Check if the /misc entry exists in the fstab. // Check if the /misc entry exists in the fstab.
static bool parse_misc() { static bool parse_misc() {
// The fstab path is "/fstab.${ro.hardware}". std::unique_ptr<fstab, decltype(&fs_mgr_free_fstab)> fstab(fs_mgr_read_fstab_default(),
std::string ro_hardware = android::base::GetProperty("ro.hardware", ""); fs_mgr_free_fstab);
if (ro_hardware.empty()) { if (!fstab) {
GTEST_LOG_(INFO) << "Failed to get ro.hardware."; GTEST_LOG_(INFO) << "Failed to read default fstab";
return false; return false;
} }
std::string fstab_path = "/fstab." + ro_hardware; fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc");
fstab* fstab = fs_mgr_read_fstab(fstab_path.c_str());
if (fstab == nullptr) {
GTEST_LOG_(INFO) << "Failed to read " << fstab_path;
return false;
}
fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/misc");
if (record == nullptr) { if (record == nullptr) {
GTEST_LOG_(INFO) << "Failed to find /misc in fstab."; GTEST_LOG_(INFO) << "Failed to find /misc in fstab.";
return false; return false;

View file

@ -163,20 +163,9 @@ static void add_block_to_ranges(std::vector<int>& ranges, int new_block) {
} }
static struct fstab* read_fstab() { static struct fstab* read_fstab() {
fstab = NULL; fstab = fs_mgr_read_fstab_default();
// The fstab path is always "/fstab.${ro.hardware}".
std::string ro_hardware = android::base::GetProperty("ro.hardware", "");
if (ro_hardware.empty()) {
LOG(ERROR) << "failed to get ro.hardware";
return NULL;
}
std::string fstab_path = "/fstab." + ro_hardware;
fstab = fs_mgr_read_fstab(fstab_path.c_str());
if (!fstab) { if (!fstab) {
LOG(ERROR) << "failed to read " << fstab_path; LOG(ERROR) << "failed to read default fstab";
return NULL; return NULL;
} }