updater: Drop the 'overlap' parameter in LoadSrcTgtVersion3().

Test: Run recovery_component_test on marlin.
Change-Id: I93afca891c5c9c1a351c907b023cd20c4704a66a
This commit is contained in:
Tao Bao 2018-06-07 22:27:44 -07:00
parent 4a8f5ec06d
commit 4a13508f0b

View file

@ -1091,9 +1091,8 @@ static int LoadSourceBlocks(CommandParameters& params, const RangeSet& tgt, size
* If the return value is 0, source blocks have expected content and the command can be performed. * If the return value is 0, source blocks have expected content and the command can be performed.
*/ */
static int LoadSrcTgtVersion3(CommandParameters& params, RangeSet* tgt, size_t* src_blocks, static int LoadSrcTgtVersion3(CommandParameters& params, RangeSet* tgt, size_t* src_blocks,
bool onehash, bool* overlap) { bool onehash) {
CHECK(src_blocks != nullptr); CHECK(src_blocks != nullptr);
CHECK(overlap != nullptr);
if (params.cpos >= params.tokens.size()) { if (params.cpos >= params.tokens.size()) {
LOG(ERROR) << "missing source hash"; LOG(ERROR) << "missing source hash";
@ -1135,15 +1134,16 @@ static int LoadSrcTgtVersion3(CommandParameters& params, RangeSet* tgt, size_t*
} }
// Load source blocks. // Load source blocks.
if (LoadSourceBlocks(params, *tgt, src_blocks, overlap) == -1) { bool overlap = false;
if (LoadSourceBlocks(params, *tgt, src_blocks, &overlap) == -1) {
return -1; return -1;
} }
if (VerifyBlocks(srchash, params.buffer, *src_blocks, true) == 0) { if (VerifyBlocks(srchash, params.buffer, *src_blocks, true) == 0) {
// If source and target blocks overlap, stash the source blocks so we can // If source and target blocks overlap, stash the source blocks so we can resume from possible
// resume from possible write errors. In verify mode, we can skip stashing // write errors. In verify mode, we can skip stashing because the source blocks won't be
// because the source blocks won't be overwritten. // overwritten.
if (*overlap && params.canwrite) { if (overlap && params.canwrite) {
LOG(INFO) << "stashing " << *src_blocks << " overlapping blocks to " << srchash; LOG(INFO) << "stashing " << *src_blocks << " overlapping blocks to " << srchash;
bool stash_exists = false; bool stash_exists = false;
@ -1164,7 +1164,7 @@ static int LoadSrcTgtVersion3(CommandParameters& params, RangeSet* tgt, size_t*
return 0; return 0;
} }
if (*overlap && LoadStash(params, srchash, true, &params.buffer, true) == 0) { if (overlap && LoadStash(params, srchash, true, &params.buffer, true) == 0) {
// Overlapping source blocks were previously stashed, command can proceed. We are recovering // Overlapping source blocks were previously stashed, command can proceed. We are recovering
// from an interrupted command, so we don't know if the stash can safely be deleted after this // from an interrupted command, so we don't know if the stash can safely be deleted after this
// command. // command.
@ -1182,9 +1182,8 @@ static int LoadSrcTgtVersion3(CommandParameters& params, RangeSet* tgt, size_t*
static int PerformCommandMove(CommandParameters& params) { static int PerformCommandMove(CommandParameters& params) {
size_t blocks = 0; size_t blocks = 0;
bool overlap = false;
RangeSet tgt; RangeSet tgt;
int status = LoadSrcTgtVersion3(params, &tgt, &blocks, true, &overlap); int status = LoadSrcTgtVersion3(params, &tgt, &blocks, true);
if (status == -1) { if (status == -1) {
LOG(ERROR) << "failed to read blocks for move"; LOG(ERROR) << "failed to read blocks for move";
@ -1382,8 +1381,7 @@ static int PerformCommandDiff(CommandParameters& params) {
RangeSet tgt; RangeSet tgt;
size_t blocks = 0; size_t blocks = 0;
bool overlap = false; int status = LoadSrcTgtVersion3(params, &tgt, &blocks, false);
int status = LoadSrcTgtVersion3(params, &tgt, &blocks, false, &overlap);
if (status == -1) { if (status == -1) {
LOG(ERROR) << "failed to read blocks for diff"; LOG(ERROR) << "failed to read blocks for diff";