No description
Find a file
Martijn Coenen 73e3010a25 Support bind mounting volumes into other volume's mountpoint.
With the way the FUSE mount point are currently setup for emulated
volumes, there can be multiple paths that serve the same files on the
lower filesystem; eg

* /mnt/user/0/emulated/0/Android
* /mnt/user/10/emulated/0/Android

both refer to the same file on the lower filesystem:
* /data/media/0/Android

this is normally not a problem, because cross-user file access is not
allowed, and so the FUSE daemon won't serve files for other users.

With clone profiles this is no longer true however, as their volumes
are accessible by each other.

So, it can happen that an app running in clone profile 10 accesses
"/mnt/user/10/emulated/0/Android", which would be served by the FUSE
daemon for the user 10 filesystem.

At the same time, an app running in the owner profile 0 accesses
"mnt/user/0/emulated/0/Android", which would be served by the FUSE
daemon for the user 0 filesystem.

This can cause page cache inconsistencies, because multiple FUSE daemons
can be running on top of the same entries in the lower filesystem.

To prevent this, use bind mounts to make sure that cross-profile
accesses actually end up in the FUSE daemon to which the volume
belongs: "/mnt/user/10/emulated/0" is bind-mounted to
"/mnt/user/0/emulated/0", and vice-versa.

Bug: 228271997
Test: manual
Change-Id: Iefcbc813670628b329a1a5d408b6126b84991e09
2022-12-07 09:01:27 +00:00
bench [LSC] Add LOCAL_LICENSE_KINDS to system/vold 2021-02-14 10:37:25 -08:00
binder/android/os Support bind mounting volumes into other volume's mountpoint. 2022-12-07 09:01:27 +00:00
fs Rename fscrypt_is_native() to IsFbeEnabled() 2022-06-15 18:52:18 +00:00
model Support bind mounting volumes into other volume's mountpoint. 2022-12-07 09:01:27 +00:00
tests Remove most of FDE support 2021-11-09 16:09:33 -08:00
.clang-format vold: use system-clang-format 2019-09-16 12:00:40 -07:00
Android.bp Point directly to generated c sysprop_library 2022-08-12 18:26:10 +00:00
AppFuseUtil.cpp AppFuseUtil: Call ForceUnmount before PrepareDir. 2019-04-09 18:45:32 +01:00
AppFuseUtil.h Extract AppFuse as a util 2018-11-14 07:28:06 +00:00
Benchmark.cpp vold: Use Wakelock::tryGet() 2021-02-22 17:24:51 -05:00
Benchmark.h clang-format many files. 2018-09-18 15:41:22 -07:00
BenchmarkGen.h Abort long-running benchmarks, report progress. 2017-11-07 09:57:12 -07:00
Checkpoint.cpp Convert vold to new BootControl client 2022-06-22 15:14:55 -07:00
Checkpoint.h Add an isCheckpointing() binder call for adb remount. 2020-06-10 23:52:25 -07:00
CleanSpec.mk Add an empty CleanSpec.mk 2010-03-08 18:05:25 -08:00
cryptfs.cpp cryptfs: Update the size of dm-crypt device according to sector size 2022-09-28 17:44:44 +08:00
cryptfs.h Remove CRYPT_FOOTER_OFFSET 2021-11-10 14:03:48 -08:00
CryptoType.cpp Generalize CryptoType infrastructure 2020-02-14 00:48:27 -08:00
CryptoType.h Generalize CryptoType infrastructure 2020-02-14 00:48:27 -08:00
EncryptInplace.cpp Remove progress property support from encrypt_inplace() 2022-03-09 21:03:52 +00:00
EncryptInplace.h Remove progress property support from encrypt_inplace() 2022-03-09 21:03:52 +00:00
FileDeviceUtils.cpp Remove excess logging in secdiscard 2019-03-21 19:13:51 +00:00
FileDeviceUtils.h clang-format many files. 2018-09-18 15:41:22 -07:00
FsCrypt.cpp Ignore DE retrieveKey failure for non-user-0 2022-11-25 00:59:14 +00:00
FsCrypt.h Increase early boot logging to kernel log 2022-03-22 00:33:52 +00:00
IdleMaint.cpp Merge "Introduce target dirty segment ratio tunable parameter" am: c3a7391c94 2022-07-14 15:13:20 +00:00
IdleMaint.h Introduce target dirty segment ratio tunable parameter 2022-07-04 21:23:46 +00:00
KeyBuffer.cpp clang-format many files. 2018-09-18 15:41:22 -07:00
KeyBuffer.h Switch to C23's memset_explicit(). 2022-08-15 23:10:28 +00:00
KeyStorage.cpp Stop using the "stretching" file 2022-10-13 04:11:27 +00:00
KeyStorage.h Replace most references to Keymaster with Keystore 2021-06-15 12:07:15 -07:00
Keystore.cpp Switch to C23's memset_explicit(). 2022-08-15 23:10:28 +00:00
Keystore.h Detect factory reset and deleteAllKeys 2021-08-11 10:29:59 -07:00
KeyUtil.cpp Improve vold logging. 2021-11-08 13:22:53 -08:00
KeyUtil.h No using inside header files 2021-06-15 15:20:44 -07:00
Loop.cpp Remove vold logs related to block devices 2021-07-28 02:58:57 +01:00
Loop.h clang-format many files. 2018-09-18 15:41:22 -07:00
main.cpp Increase early boot logging to kernel log 2022-03-22 00:33:52 +00:00
MetadataCrypt.cpp Support zoned device with dm-default-key 2022-06-07 18:43:54 -07:00
MetadataCrypt.h Support zoned device with dm-default-key 2022-06-07 18:43:54 -07:00
MoveStorage.cpp vold: Use Wakelock::tryGet() 2021-02-22 17:24:51 -05:00
MoveStorage.h clang-format many files. 2018-09-18 15:41:22 -07:00
NetlinkHandler.cpp vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
NetlinkHandler.h vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
NetlinkManager.cpp vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
NetlinkManager.h vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
OWNERS OWNERS: add alan and jeff, alphabetize 2020-12-10 13:08:28 +01:00
PREUPLOAD.cfg vold should be fully developed in AOSP. 2018-09-11 12:08:43 -06:00
Process.cpp Show names of processes killed by KillProcessesWithOpenFiles() 2021-05-10 17:34:11 +00:00
Process.h Only kill apps with storage app data isolation enabled 2021-04-30 13:58:07 +00:00
secdiscard.cpp Don't use a secdiscardable file for keys encrypted by SP 2022-10-07 16:26:29 +00:00
sehandle.h clang-format many files. 2018-09-18 15:41:22 -07:00
TEST_MAPPING Add vold to hwasan-postsubmit 2022-03-18 14:25:02 -07:00
Utils.cpp Fix unhandled exception when FUSE disabled 2022-11-08 18:49:18 +03:00
Utils.h Merge changes from topic "deny-create-user-dirs" am: 9fb8825578 am: 65f0713d14 2022-05-12 19:57:49 +00:00
vdc.cpp Support zoned device with dm-default-key 2022-06-07 18:43:54 -07:00
vold.rc vold: Reboot if vold failure 2021-10-06 18:47:37 +00:00
vold_prepare_subdirs.cpp Create misc_ce and misc_de directories on /mnt/expand 2022-03-18 11:11:22 +00:00
VoldNativeService.cpp Support bind mounting volumes into other volume's mountpoint. 2022-12-07 09:01:27 +00:00
VoldNativeService.h Support bind mounting volumes into other volume's mountpoint. 2022-12-07 09:01:27 +00:00
VoldNativeServiceValidation.cpp [vold] Check incremental paths before mounting 2022-01-31 22:13:14 +00:00
VoldNativeServiceValidation.h [vold] Check incremental paths before mounting 2022-01-31 22:13:14 +00:00
VoldUtil.cpp Move over to the C++ Fstab class 2019-01-31 12:34:39 -08:00
VoldUtil.h Remove unused code in VoldUtil.h 2020-02-18 10:48:16 -08:00
VolumeManager.cpp Support bind mounting volumes into other volume's mountpoint. 2022-12-07 09:01:27 +00:00
VolumeManager.h Support bind mounting volumes into other volume's mountpoint. 2022-12-07 09:01:27 +00:00