AU: Changes for deltas on traditional bios machines.
BUG=None
TEST=Attached unittests/tested on image
- Fix uninitialized variable err in action processor unittest
- Let Omaha dictate if an update is a delta or full update
- Bug fix in delta generator for differently-sized images
- More logging when applying delta updates
- Fix infinite loop in http fetcher unittest
- log each HTTP connection to know when a dropped connection is
reestablished.
- Detect when speed goes below a threshold and reestablish HTTP
connection (currently < 10bytes/sec for 90 contiguous seconds).
- Fix stack overflow in libcurl http fetcher.
- optimize out a lot of needless CPU usage in libcurl http fetcher
(turns out adding a glib main loop source uses a lot of CPU).
- subprocess: pass PATH, log stdout/stderr
- postinstall runner: support for ext3 and ext4 target filesystems.
Review URL: http://codereview.chromium.org/2805027
diff --git a/postinstall_runner_action.cc b/postinstall_runner_action.cc
index e8f5cc2..281582a 100644
--- a/postinstall_runner_action.cc
+++ b/postinstall_runner_action.cc
@@ -24,11 +24,6 @@
const string install_device = install_plan.install_path;
ScopedActionCompleter completer(processor_, this);
- utils::BootLoader boot_loader;
- TEST_AND_RETURN(utils::GetBootloader(&boot_loader));
-
- bool read_only = (boot_loader == utils::BootLoader_CHROME_FIRMWARE);
-
// Make mountpoint
string temp_dir;
TEST_AND_RETURN(utils::MakeTempDirectory("/tmp/au_postint_mount.XXXXXX",
@@ -37,14 +32,22 @@
{
// Scope for the mount
- unsigned long mountflags = read_only ? MS_RDONLY : 0;
+ unsigned long mountflags = MS_RDONLY;
int rc = mount(install_device.c_str(),
temp_dir.c_str(),
- "ext3",
+ "ext4",
mountflags,
NULL);
if (rc < 0) {
+ LOG(INFO) << "Failed to mount install part as ext4. Trying ext3.";
+ rc = mount(install_device.c_str(),
+ temp_dir.c_str(),
+ "ext3",
+ mountflags,
+ NULL);
+ }
+ if (rc < 0) {
LOG(ERROR) << "Unable to mount destination device " << install_device
<< " onto " << temp_dir;
return;