summaryrefslogtreecommitdiff
path: root/common/utils.cc
diff options
context:
space:
mode:
authorAlex Deymo <deymo@google.com>2016-02-18 11:00:40 -0800
committerAlex Deymo <deymo@google.com>2016-02-29 18:04:36 -0800
commit390efedcb7e17587da765b6d682077cb7fa46ee1 (patch)
tree8a8016f57fbcc5c5848ef95536b653171e05cb2d /common/utils.cc
parent14fd1ec41d1da4e849b724b762ca111a30c6628c (diff)
Parse postinstall parameters from the payload metadata.
Payload v2 includes a description of the post-install command it should run, while in payload v1 we use the default values. This patch mounts the partition on the new top-level directory called /postinstall that should already be created. Bug: 27177071 TEST=FEATURES=test emerge-link update_engine Change-Id: Iaedf3b01e5e1ad57c68bd316b4b6e79cbab35bb6
Diffstat (limited to 'common/utils.cc')
-rw-r--r--common/utils.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/common/utils.cc b/common/utils.cc
index 91dcfc83..b4956e78 100644
--- a/common/utils.cc
+++ b/common/utils.cc
@@ -613,9 +613,14 @@ bool MakeTempDirectory(const string& base_dirname_template,
bool MountFilesystem(const string& device,
const string& mountpoint,
- unsigned long mountflags) { // NOLINT(runtime/int)
- // TODO(sosa): Remove "ext3" once crbug.com/208022 is resolved.
- const vector<const char*> fstypes{"ext2", "ext3", "ext4", "squashfs"};
+ unsigned long mountflags, // NOLINT(runtime/int)
+ const string& type) {
+ vector<const char*> fstypes;
+ if (type.empty()) {
+ fstypes = {"ext2", "ext3", "ext4", "squashfs"};
+ } else {
+ fstypes = {type.c_str()};
+ }
for (const char* fstype : fstypes) {
int rc = mount(device.c_str(), mountpoint.c_str(), fstype, mountflags,
nullptr);
@@ -625,7 +630,9 @@ bool MountFilesystem(const string& device,
PLOG(WARNING) << "Unable to mount destination device " << device
<< " on " << mountpoint << " as " << fstype;
}
- LOG(ERROR) << "Unable to mount " << device << " with any supported type";
+ if (!type.empty()) {
+ LOG(ERROR) << "Unable to mount " << device << " with any supported type";
+ }
return false;
}