Update primary symlinks after mounting.

Since otherwise we might have a stale path.

Bug: 19993667
Change-Id: I099e3dc0c5aa9ab6820cded4f2ae7fd6bf18ea40
This commit is contained in:
Jeff Sharkey 2015-04-29 15:22:23 -07:00
parent b0667870ff
commit 1bfb375f77
2 changed files with 6 additions and 5 deletions

View file

@ -199,14 +199,14 @@ int CommandListener::VolumeCmd::runCommand(SocketClient *cli,
int mountFlags = (argc > 3) ? atoi(argv[3]) : 0;
userid_t mountUserId = (argc > 4) ? atoi(argv[4]) : -1;
if (mountFlags & android::vold::VolumeBase::MountFlags::kPrimary) {
vm->setPrimary(vol);
}
vol->setMountFlags(mountFlags);
vol->setMountUserId(mountUserId);
return sendGenericOkFail(cli, vol->mount());
int res = vol->mount();
if (mountFlags & android::vold::VolumeBase::MountFlags::kPrimary) {
vm->setPrimary(vol);
}
return sendGenericOkFail(cli, res);
} else if (cmd == "unmount" && argc > 2) {
// unmount [volId]

View file

@ -379,6 +379,7 @@ int VolumeManager::linkPrimary(userid_t userId) {
SLOGW("Failed to unlink %s: %s", target.c_str(), strerror(errno));
}
}
LOG(DEBUG) << "Linking " << source << " to " << target;
if (TEMP_FAILURE_RETRY(symlink(source.c_str(), target.c_str()))) {
SLOGW("Failed to link %s to %s: %s", source.c_str(), target.c_str(),
strerror(errno));