Merge "Unmount pass_through path last."
This commit is contained in:
commit
2fb2757c2d
1 changed files with 7 additions and 10 deletions
17
Utils.cpp
17
Utils.cpp
|
@ -1588,18 +1588,8 @@ status_t UnmountUserFuse(userid_t user_id, const std::string& absolute_lower_pat
|
||||||
std::string pass_through_path(
|
std::string pass_through_path(
|
||||||
StringPrintf("/mnt/pass_through/%d/%s", user_id, relative_upper_path.c_str()));
|
StringPrintf("/mnt/pass_through/%d/%s", user_id, relative_upper_path.c_str()));
|
||||||
|
|
||||||
// Best effort unmount pass_through path
|
|
||||||
sSleepOnUnmount = false;
|
|
||||||
LOG(INFO) << "Unmounting pass_through_path " << pass_through_path;
|
|
||||||
auto status = ForceUnmount(pass_through_path);
|
|
||||||
if (status != android::OK) {
|
|
||||||
LOG(ERROR) << "Failed to unmount " << pass_through_path;
|
|
||||||
}
|
|
||||||
rmdir(pass_through_path.c_str());
|
|
||||||
|
|
||||||
LOG(INFO) << "Unmounting fuse path " << fuse_path;
|
LOG(INFO) << "Unmounting fuse path " << fuse_path;
|
||||||
android::status_t result = ForceUnmount(fuse_path);
|
android::status_t result = ForceUnmount(fuse_path);
|
||||||
sSleepOnUnmount = true;
|
|
||||||
if (result != android::OK) {
|
if (result != android::OK) {
|
||||||
// TODO(b/135341433): MNT_DETACH is needed for fuse because umount2 can fail with EBUSY.
|
// TODO(b/135341433): MNT_DETACH is needed for fuse because umount2 can fail with EBUSY.
|
||||||
// Figure out why we get EBUSY and remove this special casing if possible.
|
// Figure out why we get EBUSY and remove this special casing if possible.
|
||||||
|
@ -1613,6 +1603,13 @@ status_t UnmountUserFuse(userid_t user_id, const std::string& absolute_lower_pat
|
||||||
}
|
}
|
||||||
rmdir(fuse_path.c_str());
|
rmdir(fuse_path.c_str());
|
||||||
|
|
||||||
|
LOG(INFO) << "Unmounting pass_through_path " << pass_through_path;
|
||||||
|
auto status = ForceUnmount(pass_through_path);
|
||||||
|
if (status != android::OK) {
|
||||||
|
LOG(ERROR) << "Failed to unmount " << pass_through_path;
|
||||||
|
}
|
||||||
|
rmdir(pass_through_path.c_str());
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue