summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-10-03 10:07:58 +0200
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-10-03 10:07:58 +0200
commitbe41bc6d0330dc3fb8f602d876c4de5977e44de5 (patch)
treea7cbe15d9a7188f6ce39b8689416ded7fa6c9869
parentrelease-request-b4bc7b84-64b6-4176-8f16-ce17068fad13-for-git_pi-release-4370135 snap-temp-L93500000107644030 (diff)
parentMerge "roots: Fix an issue with volume_for_path()." am: dd7a4b5264 am: 8b8c7eb442 am: 24801a3438 (diff)
downloadandroid_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.tar
android_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.tar.gz
android_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.tar.bz2
android_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.tar.lz
android_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.tar.xz
android_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.tar.zst
android_bootable_recovery-be41bc6d0330dc3fb8f602d876c4de5977e44de5.zip
-rw-r--r--bootloader_message/Android.bp2
-rw-r--r--install.cpp2
-rw-r--r--recovery.cpp2
-rw-r--r--roots.cpp10
-rw-r--r--roots.h6
5 files changed, 14 insertions, 8 deletions
diff --git a/bootloader_message/Android.bp b/bootloader_message/Android.bp
index 456b04c33..c81c67bdb 100644
--- a/bootloader_message/Android.bp
+++ b/bootloader_message/Android.bp
@@ -17,7 +17,7 @@
cc_library_static {
name: "libbootloader_message",
srcs: ["bootloader_message.cpp"],
- cppflags: [
+ cflags: [
"-Wall",
"-Werror",
],
diff --git a/install.cpp b/install.cpp
index 507161c2e..74d1a68b3 100644
--- a/install.cpp
+++ b/install.cpp
@@ -653,7 +653,7 @@ int install_package(const std::string& path, bool* wipe_cache, const std::string
std::chrono::duration<double> duration = std::chrono::system_clock::now() - start;
int time_total = static_cast<int>(duration.count());
- bool has_cache = volume_for_path("/cache") != nullptr;
+ bool has_cache = volume_for_mount_point("/cache") != nullptr;
// Skip logging the uncrypt_status on devices without /cache.
if (has_cache) {
static constexpr const char* UNCRYPT_STATUS = "/cache/recovery/uncrypt_status";
diff --git a/recovery.cpp b/recovery.cpp
index 076b4492e..4dc5b540e 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -1396,7 +1396,7 @@ int main(int argc, char **argv) {
printf("Starting recovery (pid %d) on %s", getpid(), ctime(&start));
load_volume_table();
- has_cache = volume_for_path(CACHE_ROOT) != nullptr;
+ has_cache = volume_for_mount_point(CACHE_ROOT) != nullptr;
std::vector<std::string> args = get_args(argc, argv);
std::vector<char*> args_to_parse(args.size());
diff --git a/roots.cpp b/roots.cpp
index 7d7d1bdc7..c0348d715 100644
--- a/roots.cpp
+++ b/roots.cpp
@@ -20,6 +20,7 @@
#include <fcntl.h>
#include <stdint.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -38,7 +39,6 @@
#include <ext4_utils/wipe.h>
#include <fs_mgr.h>
-#include "common.h"
#include "mounts.h"
static struct fstab* fstab = nullptr;
@@ -69,15 +69,19 @@ void load_volume_table() {
printf("\n");
}
+Volume* volume_for_mount_point(const std::string& mount_point) {
+ return fs_mgr_get_entry_for_mount_point(fstab, mount_point);
+}
+
// Finds the volume specified by the given path. fs_mgr_get_entry_for_mount_point() does exact match
// only, so it attempts the prefixes recursively (e.g. "/cache/recovery/last_log",
// "/cache/recovery", "/cache", "/" for a given path of "/cache/recovery/last_log") and returns the
// first match or nullptr.
-Volume* volume_for_path(const char* path) {
+static Volume* volume_for_path(const char* path) {
if (path == nullptr || path[0] == '\0') return nullptr;
std::string str(path);
while (true) {
- Volume* result = fs_mgr_get_entry_for_mount_point(fstab, str.c_str());
+ Volume* result = fs_mgr_get_entry_for_mount_point(fstab, str);
if (result != nullptr || str == "/") {
return result;
}
diff --git a/roots.h b/roots.h
index 542f03b9c..46bb77e02 100644
--- a/roots.h
+++ b/roots.h
@@ -17,13 +17,15 @@
#ifndef RECOVERY_ROOTS_H_
#define RECOVERY_ROOTS_H_
+#include <string>
+
typedef struct fstab_rec Volume;
// Load and parse volume data from /etc/recovery.fstab.
void load_volume_table();
-// Return the Volume* record for this path (or NULL).
-Volume* volume_for_path(const char* path);
+// Return the Volume* record for this mount point (or nullptr).
+Volume* volume_for_mount_point(const std::string& mount_point);
// Make sure that the volume 'path' is on is mounted. Returns 0 on
// success (volume is mounted).