From 63f5260c6c7d3564a6b1a6e6b8a6a8a4e52fa617 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Fri, 11 Jan 2019 13:52:33 -0800 Subject: Create stash dir recursively. When applying an OTA package onto the device in OTA mode, if the recovery logs haven't been viewed, there is a chance that /cache/recovery does not exist. Then, stash creation will fail. Create stash directories recursively to avoid this error. Test: without /cache/recovery, sideload the OTA on cuttlefish Change-Id: I5cc01a067d866476a3594e795dcb5b15649e817b --- updater/blockimg.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/updater/blockimg.cpp b/updater/blockimg.cpp index 9d5b01734..e35d48368 100644 --- a/updater/blockimg.cpp +++ b/updater/blockimg.cpp @@ -53,6 +53,7 @@ #include #include "edify/expr.h" +#include "otautil/dirutil.h" #include "otautil/error_code.h" #include "otautil/paths.h" #include "otautil/print_sha1.h" @@ -878,7 +879,7 @@ static int CreateStash(State* state, size_t maxblocks, const std::string& base) size_t max_stash_size = maxblocks * BLOCKSIZE; if (res == -1) { LOG(INFO) << "creating stash " << dirname; - res = mkdir(dirname.c_str(), STASH_DIRECTORY_MODE); + res = mkdir_recursively(dirname, STASH_DIRECTORY_MODE, false, nullptr); if (res != 0) { ErrorAbort(state, kStashCreationFailure, "mkdir \"%s\" failed: %s", dirname.c_str(), -- cgit v1.2.3