Snap for 4373608 from ff1f8d207cb973e8220a20da71d62089df92f10d to pi-release

Change-Id: I7a2b0412157651db6794d06f412aa8ef03bbdf19
diff --git a/bootloader_message/Android.bp b/bootloader_message/Android.bp
index 456b04c..c81c67b 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 507161c..74d1a68 100644
--- a/install.cpp
+++ b/install.cpp
@@ -653,7 +653,7 @@
   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 076b449..4dc5b54 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -1396,7 +1396,7 @@
     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 7d7d1bd..c0348d7 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 @@
   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 542f03b..46bb77e 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).