Merge "Unmount pass_through path last." am: 2fb2757c2d am: 5b5083b8a9 am: a385e43146
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1505131
Change-Id: I910198959e1998dd385e6a105f85fe8fe4ad5458
diff --git a/Utils.cpp b/Utils.cpp
index afb0989..d5648f7 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -1588,18 +1588,8 @@
std::string pass_through_path(
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;
android::status_t result = ForceUnmount(fuse_path);
- sSleepOnUnmount = true;
if (result != android::OK) {
// 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.
@@ -1613,6 +1603,13 @@
}
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;
}