diff --git a/model/EmulatedVolume.cpp b/model/EmulatedVolume.cpp
index 022ff42..4910803 100644
--- a/model/EmulatedVolume.cpp
+++ b/model/EmulatedVolume.cpp
@@ -89,13 +89,18 @@
     if (isFuse) {
         LOG(INFO) << "Mounting emulated fuse volume";
         android::base::unique_fd fd;
-        int result = MountUserFuse(getMountUserId(), label, &fd);
+        int user_id = getMountUserId();
+        int result = MountUserFuse(user_id, label, &fd);
+
         if (result != 0) {
             PLOG(ERROR) << "Failed to mount emulated fuse volume";
             return -result;
         }
         setFuseFd(std::move(fd));
-        return OK;
+
+        std::string pass_through_path(StringPrintf("/mnt/pass_through/%d/%s",
+                                                   user_id, label.c_str()));
+        return BindMount(getInternalPath(), pass_through_path);
     }
 
     if (!(mFusePid = fork())) {
diff --git a/model/PublicVolume.cpp b/model/PublicVolume.cpp
index ebcb91a..d2fcc18 100644
--- a/model/PublicVolume.cpp
+++ b/model/PublicVolume.cpp
@@ -174,13 +174,18 @@
     if (isFuse) {
         LOG(INFO) << "Mounting public fuse volume";
         android::base::unique_fd fd;
-        int result = MountUserFuse(getMountUserId(), stableName, &fd);
+        int user_id = getMountUserId();
+        int result = MountUserFuse(user_id, stableName, &fd);
+
         if (result != 0) {
             LOG(ERROR) << "Failed to mount public fuse volume";
             return -result;
         }
         setFuseFd(std::move(fd));
-        return OK;
+
+        std::string pass_through_path(StringPrintf("/mnt/pass_through/%d/%s",
+                                                 user_id, stableName.c_str()));
+        return BindMount(getInternalPath(), pass_through_path);
     }
 
     if (!(mFusePid = fork())) {
