Migrating data sometimes leaves emulated unmounted

am: 7f52bca485

Change-Id: Id45c7edab0d244dcb17d6bda491ca297ed55c1c0
gugelfrei
Henrik Baard 8 years ago committed by android-build-merger
commit 78c63c26a7

@ -182,8 +182,11 @@ void MoveTask::run() {
// Step 1: tear down volumes and mount silently without making
// visible to userspace apps
bringOffline(mFrom);
bringOffline(mTo);
{
std::lock_guard<std::mutex> lock(VolumeManager::Instance()->getLock());
bringOffline(mFrom);
bringOffline(mTo);
}
fromPath = mFrom->getInternalPath();
toPath = mTo->getInternalPath();
@ -201,8 +204,11 @@ void MoveTask::run() {
// NOTE: MountService watches for this magic value to know
// that move was successful
notifyProgress(82);
bringOnline(mFrom);
bringOnline(mTo);
{
std::lock_guard<std::mutex> lock(VolumeManager::Instance()->getLock());
bringOnline(mFrom);
bringOnline(mTo);
}
// Step 4: clean up old data
if (execRm(fromPath, 85, 15) != OK) {
@ -213,8 +219,11 @@ void MoveTask::run() {
release_wake_lock(kWakeLock);
return;
fail:
bringOnline(mFrom);
bringOnline(mTo);
{
std::lock_guard<std::mutex> lock(VolumeManager::Instance()->getLock());
bringOnline(mFrom);
bringOnline(mTo);
}
notifyProgress(kMoveFailedInternalError);
release_wake_lock(kWakeLock);
return;

Loading…
Cancel
Save